慕標(biāo)5832272
2021-02-19 11:07:05
float a;scanf(“%f”,&a);當(dāng)我輸入10.1時出錯了,說runtime error但是如果改成 %5.5f 就沒關(guān)系,這是怎么回事,%f 默認(rèn)是幾位小數(shù)幾位整數(shù)?。?nbsp;
2 回答

慕桂英3389331
TA貢獻(xiàn)2036條經(jīng)驗 獲得超8個贊
錯誤原因:指定數(shù)據(jù)格式時,scanf不添加逗號。
解決的辦法為:
在scanf中添加一個逗號(“%f%f%f”,&a,&b,&c)。
注意:“%f,%f,%f”的格式與“%f%f%f”的格式基本相同,不同之處在于“%f,%f,%f”的格式輸入時為“ ,”確保跟上輸入的數(shù)字,在此處輸入的“,”必須為英文。
擴展資料:
scanf使用注意問題
1、在更高版本的Visual Studio編譯器中,scanf被認(rèn)為是不安全和不推薦使用的,應(yīng)使用scanf_s而不是scanf。
2、對于字符串?dāng)?shù)組或字符串指針變量,由于可以將數(shù)組名稱轉(zhuǎn)換為數(shù)組,并且指針變量名稱本身就是地址,因此在使用scanf()函數(shù)時,無需添加“&” 在他們前面的運算符。
3、可以在格式字符串的“%”格式說明符之間添加一個整數(shù),以指示任何讀取操作中的最大位數(shù)。
4、scanf函數(shù)中沒有類似于printf的精度控件。
5、在scanf中需要變量地址,如果給定變量名,將發(fā)生錯誤。

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊
添加回答
舉報
0/150
提交
取消