按照Kernighan和Ritchie的 The C Programming Language 一书,我正在尝试以下练习:
练习1-12 编写一个程序,每行输出一个单词。
这是我的代码:
main(){
int b;
while( (b=getchar()) != EOF){
if(b != ' ' || b != '\t' || b != '\n')
putchar(b);
if(b == ' ' || b == '\t' || b == '\n')
printf("\n");
}
}
我的问题是按 ENTER 来获取换行符执行代码而不是仅仅在控制台中给我一个换行符。
不应该只是EOF这样做吗?否则,程序运行正常。
编辑:根据我的理解,这不是Why non-equality check of one variable against many values always returns true? 的副本,虽然我应该使用“&&”而不是“||”,问题仍然存在。当我在控制台中按ENTER键时,程序执行而不是给我换行。如果我错了,请纠正我。