【发布时间】:2016-09-23 18:36:45
【问题描述】:
假设我有以下...
int main () {
char name [5] = "";
char c;
printf("Enter a name: ");
fgets(name,5,stdin);
while ((c = getchar()) != '\n');
printf("Exiting...);
getchar();
return 0;
}
while 循环会清理标准输入缓冲区,但我也看到循环是这样完成的......
while ((c = getchar()) != '\n' && c != EOF);
我想知道两者之间是否有任何区别???测试 EOF 有什么不同吗?
【问题讨论】:
-
看到
fgets读取newline反正还有什么要读取的? -
没什么...想知道为什么我在其他地方看到它?
-
再看一遍,
char name [5];很有可能还有更多要阅读,但如果最后没有newline,则只需清除输入name. -
另请注意,
fgetc()返回int而不是char。 -
@iharob,你的意思是
getchar()而不是fgetc():)