我不明白。
我尝试编写一个程序来消除空格:
int c;
c = getchar();
while (c!= EOF) {
//do things
}
上面的代码导致很多第一个输入的字符输出到屏幕上, 还没有
while ((c = getchar()) != EOF)
解决了问题。
为什么?
我如何调试才能更好地理解这一点?
最佳答案
while ((c = getchar()) != EOF)
solved the problem
- 因为您在每次迭代时都调用
getchar()
,而在第一个代码中您没有调用。
试试这个
#include <ctype.h>
#include <stdio.h>
void removeSpaces()
{
do {
chr = getchar();
} while ((chr != EOF) && (isspace(chr) != 0));
}
然后只要你想删除空格就调用removeSpaces()
。
关于c - 为什么它们必须在同一行: (c = getchar()) ! = EOF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553994/