簡體   English   中英

C編程:Scanf in while循環僅讀取一次輸入,然后終止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM