我最近开始学习C语言中的I/O文件操作,在这段代码中,我遇到了一个问题,即使我输入了非空格字符‘’,while循环也不会退出。请告诉我哪里错了,怎么退出while循环。
#include <stdio.h>
int main()
{
char a = 0;
while ((a = (char)getchar()) != ' ');
ungetc(a, stdin);
printf("\n Value of A is %c", a);
return 0;
}发布于 2021-06-06 17:40:19
getchar函数返回int是有原因的。它既可以返回一个字符(如果有),也可以返回EOF以指示输入流的结束。因此,使用char变量来存储结果并不是一个好主意。
然后,您还应该始终测试EOF,并在遇到这种情况时采取相应的措施。
此外,通常这些流是行缓冲的,因此在输入整行之前,您将看不到任何输入。
https://stackoverflow.com/questions/67857672
复制相似问题