簡體   English   中英

輸入字符未正確讀取

[英]Input characters not reading correctly

這應該是一個簡單的錯誤。 我的代碼基本上是讀取用戶輸入值,如果該值大於 0,它將返回該值。 如果不是,它將打印錯誤並再次詢問該值。 唯一的問題是當輸入新值時,它會毫無錯誤地使用舊的 false 值。

int menuSize(int s) {
printf(" Please Enter size: ");
scanf("%i", &s);
if (s>0) {
}
else {
    printf(" Invalid Input\n");
    getchar();
    menuSize(s);
}
return s;
}

如果輸入無效,則 function 會對其自身進行遞歸調用,但不會對遞歸調用的返回值執行任何操作。 這意味着在當前調用中讀取的無效值將被返回。

更改 function 以返回遞歸調用的值。 此外,刪除 function s參數,因為它未被使用,並使其成為本地參數。 您還應該將s初始化為某個已知值,並檢查scanf的返回值,以防未讀取任何內容。

int menuSize(void) 
{
    int s = -1;
    printf(" Please Enter size: ");
    int rval = scanf("%i", &s);
    if (rval == 1 && s>0) {
        return s;
    } else {
        printf(" Invalid Input\n");
        getchar();
        return menuSize();
    }
}

暫無
暫無

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

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