这有什么作用:while((c= getchar()) != 'n' && c != EOF);

What does this do : while((c= getchar()) != ' ' && c != EOF);

本文关键字:EOF 什么 getchar 作用 while      更新时间:2023-10-16
while((c= getchar()) != 'n' && c != EOF);

我在使用gets()输入字符串时遇到了一个问题。我在谷歌上发现它在输入缓冲区中保持'n'的值。我在这里搜索,发现上面的代码来解决我的问题。然而,我还没有完全掌握它。这有什么用?谁来给我点化一下。

c++中的赋值也会产生被赋值的值。因此,c= getchar()从文件中读取下一个字符,(c= getchar()) != 'n'将读取的字符与换行符进行比较。还有一个特殊的EOF值的测试,以确保它不会一直试图读取,一旦你到达文件的末尾。

while和结束分号之间没有语句,因为不需要做任何其他事情,您将扔掉输入。

代码引入了一个while循环。它的退出条件将getchar()返回的值赋给整数c,并检查它是否等于换行符('n')或EOF。如果是,则退出循环。如果不是,则提取下一个字符,依此类推。

代码基本上跳过所有字符,直到到达下一个换行符或EOF。它相当于:

for (;;)
{
c = getchar(); // c has been declared elsewhere
if (c == 'n' || c == EOF)
break;
}