getchar()在死循环中出现的问题为什么完成一次循环后,屏幕会出现两行“Do you want to build a new node?”C
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次。