linux中getchar函数用法,linux getchar函数使用

linux中getchar函数用法,linux getchar函数使用1函数介绍1)函数原型intgetchar(void);2)函数功能从stdin中读取一个字符。3)返回值返回读取字符的ASCII值或者EOF字符或者出错值。4)头文件#include2函数使用2.1getchar函数的特点Linux下编写的一个例子:#includeintmain(void){charch;intnum;num=0;printf…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1 函数介绍

1)  函数原型

int    getchar(void);

2)  函数功能

从stdin中读取一个字符。

3)  返回值

返回读取字符的ASCII值或者EOF字符或者出错值。

4)  头文件

#include

2 函数使用

2.1 getchar函数的特点

Linux下编写的一个例子:

#include

int main(void)

{

char ch;

int num;

num = 0;

printf(“input your strings:\n”);

while( (ch = getchar()) != ‘\n’){

printf(“%c “, ch);

num++;

}

printf(“\nThe string length is %d\n”, num);

return 0;

}

编译程序:gcc        –Wall        getchar.c          –o     getchar

运行程序:./getchar  [回车]

//提示:当程序运行到while循环中的getchar时,界面等待用户输入字符,直到回车出现

input your strings:

输入字符串:hello getchar

在输入这段字符串的过程中getchar函数没有发生从stdin读取字符的操作(因为没有任何的字符输出),当在输入字符串后按下回车后界面输出情况如下:

input your strings:

hello getchar

h e l l o   g e t c h a r

The string length is 13

misskissc@monday:~$

由程序执行过程及结果可推理getchar在等待用户输入时有两个特征:

1)       getchar没有立即读从键盘敲进来的字符,而是等用户按下回车之后再开始读字符。

2)       getchar每次只读取一个字符,如果程序中不采用循环而只设置一个getchar()语句,则getchar只读取输入字符串的首个字符,其余字符依然留在缓存区中(若将程序的while循环去掉只输出第一个字符)。

2.2 getchar读取回车字符么?

现将以上程序的while( (ch = getchar()) != ‘\n’)改为while( (ch = getchar()) != ‘n’)其余部分保持不变。重新编译并运行程序,输入字符串:hello[回车]

得第一次运行结果

当程序首次执行到while中的getchar时,getchar函数等待用户的输入,getchar函数一直等待用户输入,当用户按下回车表示用户输入完毕,getchar开始逐个读取输入的字符串,将用户输入的所有字符读取完毕后(因为while的条件为真),再次等待用户的输入:

3c8fa2de502dc0c336f6f815b3ca51d5.png

此次输入字符’n’,注意输入字符’n’时的位置,为什么不是在o后面呢,而是换了一行而且相隔了一个空格呢?其实是因为上一次getchar读了一个回车,并被输出到了界面之上使字符界面得以换了行。输入字符’n’没有按回车之前getchar函数是不会发生读操作的,当在输入字符’n’后按下回车后程序就会结束(或者在输入字符’n’后再输入其它的字符后再按下会车,程序依然将会结束,只是字符’n’后面的字符不会被getchar函数读取,因为while循环的条件已经为假)并得到以下输出界面

String输入字符串的长度为6在一次表明getchar读取了用户输入的回车。字符’n’虽然被读取,但是不会被计数,因为此时while的条件为假了呗。

3 额外总结

函数本身的特性与语句条件限制两者各自带来的作用需要分清楚。

Note Over。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180589.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • mysql数据库SQL查询语句SELECT详细查询(超详细)「建议收藏」

    mysql数据库SQL查询语句SELECT详细查询(超详细)「建议收藏」常规查询查询所有字段:select*from表名;查询指定字段:select列1,列2,…from表名;使用as给字段起别名:select字段as名字….from表名;查询某个表的某个字段:select表名.字段….from表名;可以通过as给表起别名:select别名.字段….from表名as别名;消除重复行:distinct字段条件查询㈠比较运算符:>,<,>=,<=,=,!=,

  • 【知识普及】平板的屏幕分辨率和屏幕比例_和平精英平板分辨率

    【知识普及】平板的屏幕分辨率和屏幕比例_和平精英平板分辨率针对IOS,Android手机分辨率大小、屏幕尺寸、开发尺寸的参考。在实际页面的开发过程,往往显示屏幕的宽度换算为像素尺寸的1/2。IOS:6.5英寸——1242x2688px——XsMax6.1英寸——828x1792px——XR5.8英寸——1125x2436px——X/Xs5.5英寸——1242x2208px——6+…

  • Ubantu下通过iptables开放端口「建议收藏」

    Ubantu下通过iptables开放端口「建议收藏」1.iptablesan安装#检查是否安装@shylin:/etc#sudowhereisiptablesiptables:/sbin/iptables/usr/share/iptables/usr/share/man/man8/iptables.8.gz#安装sudoapt-getinstalliptables2.查看防火墙的配置信息root…

    2022年10月20日
  • linux的rwx权限解读

    linux的rwx权限解读linux的rwx权限解读:我们输入指令:ls-l会看到类似我这样的语句drwx-xr-x-我们可以这样解读:首字母:文件类型d:d开头的是文件夹-:文件l:连接(快捷方式)c:硬件设备然后是三组rwx:第一组rwx:创建着权限。第二组rwx:创建者所属组权限。第三组rwx:访客权限。r:可读(4)w:可写(2)x:可执…

  • eclipse 下载安装教程

    eclipse 下载安装教程之前已经安装了JDK还有环境变量的配置,如果没有弄的,可以看这个JDK以及环境变量配置一、下载eclipse官网的网址:eclipse下载1.有的是下载的压缩包,可以直接放到想要放的位置,解压缩就行,这你就不说了;这里主要是通过installer下载安装2.选择China下载二、安装等待安装完成就行…

  • ajax 跨域请求api_java跨域请求的三种方法

    ajax 跨域请求api_java跨域请求的三种方法让ajax请求访问servlet,可以让ajax请求跨域,通过直接本应用中的资源servlet,ajax可以不跨域访问本应用中的servlet,让java程序发送Get,Post请求,来访问2号服务器中的的servlet。ProxyServlet发送get请求,访问b站点TargerServlet,请求响应回来数据在进行响应。首先把架包导入创建lib目录,复制进去选中右键Addaslibrary。(2)ajax跨域解决方案之代理机制的代码实现。引入架包httpclient架包。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号