簡體   English   中英

檢查用戶是否輸入int-C

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

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