C/C++中 使用scanf和printf如何读入输出double型数据。
ringa_lee
ringa_lee 2017-04-17 13:45:23
0
2
1307

C/C++中 使用scanfprintf如何读入输出double型数据。

使用%lf,出现了如图所示的情况

应该scanf使用%lfprintf使用%f么?
为什么?

ringa_lee
ringa_lee

ringa_lee

全部回覆(2)
黄舟

注意scanf函數和printf函數是不同尋常的函數,因為它們都沒有將函數的參數限制為固定數量。 scanf函數和printf函數又可變長度的參數列表。當呼叫具有可變長度參數清單的函數時,編譯器會安排float參數自動轉換成為double類型,其結果是printf函數無法區分float型和double型的參數。因此在printf函數呼叫中%f既可以表示float型又表示double型的參數。
另一方面,scanf函數是透過指標指向變數的。 %f告訴scanf函數在所傳位址位置上儲存一個float型值,而%lf告訴scanf函數在所傳位址位置上儲存一個double型值。這裡float和double的差別是非常重要的。如果給出了錯誤的轉換說明,那麼scanf函數將可能儲存錯誤的位元組數量(沒有提到的是,float型的為模式可能不同於double型的位元模式)。
答案在此
問之前多搜尋

如果可以用CPP的話iostream比較容易用一些

cin>>doubleValue;
cout<< doubleValue;
左手右手慢动作

能double就盡量不要float 雖然有點佔用內存 還有二者盡量不要混用

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板