[英]scanf() in while loop. Put a space before % doesn't work
double bet = 0;
do
{
printf("How much would you like to bet? The minimum bet is $5.00: ");
scanf(" %.2lf",&bet);
} while (bet < 5);
我的scanf只取值一次,並進入無限循環。 我讀了很多文章,發現解決此問題的一般方法是在%之前加一個空格。 我這樣做了,但是問題仍然存在。 假設它首先讀取bet = 4,並且應該讓我再輸入一個數字,但它只會繼續打印“您想下多少賭注?最低下注為$ 5.00:”。 這是為什么?
問題是您的scanf
格式字符串。 您的編譯器可能已對此發出警告。 的.
不允許。 結果, scanf
調用返回0
,並且不占用任何字符。
嘗試將其更改為此:
double bet = 0;
do {
printf("How much would you like to bet? The minimum bet is $5.00: ");
scanf(" %lf", &bet);
} while (bet < 5);
檢查scanf
的返回值也是一個好主意。 它應該返回成功解碼的值的數量。
您的代碼中是否需要.2。 使用表示警告。 在代碼中。 嘗試將其刪除。 然后工作正常。 即僅使用%lf
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.