在C语言中getchar()如何用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中getchar()如何用相关的知识,希望对你有一定的参考价值。

getchar
由宏实现:#define
getchar()
fgetc(stdin)。getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ascii码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
参考技术A 并不是等于函数,而是等于函数调用的结果
就像数学上说的

y
=
sin(π)
不是说让变量
y
成为一个函数,而是让
y
等于
sin(π)
这个计算的结果。不过
C
语言这样的“过程式”编程语言和数学上有一点不一样,就是对同一个函数的两次一模一样的调用可以得到不同的结果,例如
getchar();
getchar();
这样两次调用的结果可能是不一样的
getchar()
的返回值类型确实是
int
,返回值的取值有两种可能,一种是
把读到的字符提升成
int
类型
然后返回(因为
int
的取值范围一定是
char
的取值范围的超集,所以不会有数据丢失),另一种是如果读取的时候发生错误,返回的是
EOF,这个宏展开成一个“和任何字符都不相等”的
int
值,用来表示错误,它不一定能用
char
表示。
也就是说,这里人为给
int
加上了“比
char
多一个表示‘不是字符’的值的数据类型”的含义
代码中这种直接把
getchar()
的返回值赋给
char
类型就是放弃检查
读取时有没有发生错误,算是偷懒的做法或者是比较坏的做法吧
参考技术B 首先类型
char
<
short
<
long
,int由系统决定是short还是long,他们之间是可以相互转换的。
char型指是ascii码表对应的字符,如,'A'的ascii码是65,
你可以
char A = 'A';
char A = 65;
int A = 'A';不管是int还是char,在内存中都是二进制。只要他们二进制相同,就是相等的。
int和char是可以混用的,学会用printf
%c
%d来测试他们吧,这样你就能加深印象
------------------------
”定义一个字符后,这个字符为什么能等于一个函数啊?“
这个一点也不奇怪
这个不是等于一个函数,而是等于其返回值。
例如:
int
a
=
10;
int
b
=
fun();
//假设fun()返回一个10的函数
都是可以
getchar是函数,
getchar()是函数调用。
就像高中学的y=f(x),y是等于f(x)计算出来的值
x是形参,你具体传入一个值,如0,就可以算出来具体的值
另外等于函数,其实说的是函数指针,暂时你用不上,就先不介绍了
参考技术C main()

char
c;
c=getchar();
/*从键盘接收一个字符,只能一个,多于一个其余作废*/
putchar(c);

还可以这样用:
main()

putchar(getchar());

以上是关于在C语言中getchar()如何用的主要内容,如果未能解决你的问题,请参考以下文章

c语言getchar的用法

c语言中的getch与getchar 有啥区别?

如何用c语言编写一个程序:输入字符串,统计出某指定字符在字符串中出现的次数?

C语言中getchar()怎么用?

C语言getchar()和EOF

c语言中(c=getchar())!=EOF与c=getchar()!=EOF的区别?