通过K& R,我正试着绕过C. 我想编写一个程序,在屏幕上打印用户的上一行,除非该字符是“a”。
int main(){
int c;
while((c=getchar())!=EOF){
if(c!='a')
putchar(c);
}
return 0;
}
是的,该计划并不多。但它不会按预期工作。我是否需要使用字符“a”的ASCII值,因为上面的代码只打印所有字母而不管是否为。
答案 0 :(得分:1)
代码应按指定的方式工作,但您会发现,使用带有while循环的getchar
将在输入a时打印回车符。这是因为在当前实现中getchar
将继续读取输入缓冲区,直到它为空,如果你想要阻止这种情况发生,你可以在if语句中刷新它。
此刻输入一串文字将打印删除任何* a * s
的字符串