[英]Checking if the user entered an int - C
我需要檢查用戶是否在scanf()中輸入了整數(在C中)。 我有以下代碼:
do {
srs = scanf("%d", &x);
} while (!srs);
如果我輸入一個數字,它將起作用並繼續執行程序,但是,如果我輸入一個字符,它只會要求我再次輸入。 但是,如果輸入正確的整數,則不會中斷循環。
當您不首先輸入數字時,它將在輸入流中保留非數字字符,以供下一個呼叫接聽。 因此,您陷入無限循環。
您應該使用fgets
讀取整行輸入,然后在該輸入行上使用sscanf
。
do {
char line[512];
fgets(line,512,stdin);
srs = sscanf(line,"%d", &x);
} while (!srs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.