![](/img/trans.png)
[英]C program immediatley exits after execution, yet it has a while(1) loop
[英]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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.