簡體   English   中英

C 程序執行一次后退出循環

[英]C program do-while loop exits after one execution

我有一個程序,只要輸入的字符是“y”,它就會繼續循環,但是我的代碼在執行一次 do-while 循環后退出。

int main()
{
    char cont;

    do {
        printf("Would you like to continue (y/n)?: ");
        scanf_s("%c", &cont, sizeof(cont));
    } while (cont == 'y');
}

這將按一次按鍵並退出或繼續,就像它應該的那樣,但隨后立即退出而無需等待更多按鍵。

似乎在第二個循環中讀取了 "y" 之后的換行符,並且由於換行符不是y而退出了循環。

您應該添加一個空格字符以使其跳過空格字符,如下所示:

scanf_s(" %c", &cont, (unsigned)sizeof(cont));

另請注意, scanf_s的 size 參數是unsigned類型,而不是size_t

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l | 微軟文檔

相關: c - scanf 中的空格是什么意思? - 堆棧溢出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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