在這個 C 程式中,如果我輸入 b 作為輸入,程式會列印 Enter 正確的輸入。如果我輸入 b45 作為輸入,程式將再次列印輸入正確的輸入。但是,如果我輸入 45b,程式將 45 作為輸入并正常進行。
如果我輸入 45b,程式應該列印 Enter 正確的輸入,但它沒有發生。
#include <stdio.h>
int main()
{
double i;
printf ("Enter a number. \n");
while (scanf("%lf", &i) == 0)
{
printf("Enter correct input. \n");
fflush (stdin);
}
printf ("%lf\n", i);
return 0;
}
uj5u.com熱心網友回復:
不是通過 閱讀scanf(),而是使用 閱讀一行用戶輸入fgets(buf, ...),然后用于strtof(buf, &endptr))評估輸入是否為數字并endptr評估數字文本后面的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/370317.html
下一篇:為什么不列印0到999?
