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