getchar()在死循环中出现的问题
为什么完成一次循环后,屏幕会出现两行“Do you want to build a new node?”
- C/C++ code
int main(){ char c; for(; ;){printf("Do you want to build a new node?\n"); c = getchar(); if(c == 'n') break; if(c != 'y' && c != 'n') continue; if(c == 'y') printf("hello world\n"); }}[解决办法]
[解决办法]
[解决办法]
c = getchar();
是等待输入字符,直到出现\n为止。 输入的字符先存放在缓冲区,然后把值一个一个的赋给c,你如果输入的是k,则先把k给c,然后再把\n赋给c,这样就会循环2次,打印2次。