while((c= getchar()) != '\n' && c != EOF);
我通过使用gets()输入字符串来解决问题。我在google上发现它在输入缓冲区中保留了'\ n'的值。我在这里搜索并找到上面的代码来解决我的问题。但是我并没有完全掌握它。这是做什么的?有人请赐教。
答案 0 :(得分:4)
C ++中的赋值也将产生赋值。因此c= getchar()
正在读取文件中的下一个字符,(c= getchar()) != '\n'
正在将该读取字符与换行符进行比较。还有针对特殊EOF
值的另一项测试,以确保在您到达文件末尾时不会继续尝试阅读。
while
和结束分号之间没有任何声明,因为没有其他事情需要做,你将输入丢弃了。
答案 1 :(得分:2)
代码引入了while
- 循环。它的退出条件为整数c
指定getchar()
返回的值,并检查它是否等于换行符('\n'
)或EOF
。如果是,则循环退出。如果不是,则提取下一个字符,依此类推。
代码基本上会跳过所有字符,直到下一个换行符或EOF
到达。它相当于:
for (;;)
{
c = getchar(); // c has been declared elsewhere
if (c == '\n' || c == EOF)
break;
}