[英]C Programming: Scanf in while loop only reads input once and then terminates
我是C編程新手,目前正在學習while
循環。 我的問題是, while
循環必須繼續,直到用戶希望終止while
循環為止。 但是當我運行我的代碼時,似乎scanf()
僅掃描一次輸入, while
循環隨后終止,我不知道為什么。
int main(void) {
setbuf(stdout, NULL);
char answer = 'y';
while (answer == 'y') {
printf("continue? (y/n): ");
scanf("%c", &answer);
}
return 0;
}
除y
每個字符都終止循環。 如果您按下y<newline>
,則y
將使循環再運行一次,然后換行符將終止循環。
基本的問題是,當您實際上要讀取一行時,您正在讀取一個字符。
您需要使用換行符。
更改
scanf("%c", &answer);
至
scanf(" %c", &answer);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.