在C语言中getchar()如何用

2025-02-24 20:27:30
推荐回答(4个)
回答1:

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

回答2:

并不是等于函数,而是等于函数调用的结果
就像数学上说的

y
=
sin(π)
不是说让变量
y
成为一个函数,而是让
y
等于
sin(π)
这个计算的结果。不过
C
语言这样的“过程式”编程语言和数学上有一点不一样,就是对同一个函数的两次一模一样的调用可以得到不同的结果,例如
getchar();
getchar();
这样两次调用的结果可能是不一样的
getchar()
的返回值类型确实是
int
,返回值的取值有两种可能,一种是
把读到的字符提升成
int
类型
然后返回(因为
int
的取值范围一定是
char
的取值范围的超集,所以不会有数据丢失),另一种是如果读取的时候发生错误,返回的是
EOF,这个宏展开成一个“和任何字符都不相等”的
int
值,用来表示错误,它不一定能用
char
表示。
也就是说,这里人为给
int
加上了“比
char
多一个表示‘不是字符’的值的数据类型”的含义
代码中这种直接把
getchar()
的返回值赋给
char
类型就是放弃检查
读取时有没有发生错误,算是偷懒的做法或者是比较坏的做法吧

回答3:

首先类型
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,就可以算出来具体的值
另外等于函数,其实说的是函数指针,暂时你用不上,就先不介绍了

回答4:

main()
{
char
c;
c=getchar();
/*从键盘接收一个字符,只能一个,多于一个其余作废*/
putchar(c);
}
还可以这样用:
main()
{
putchar(getchar());
}