我有一個如下所示的數字列表:1.234D+1
或1.234D-02
。我想用C讀取文件。功能atof
只會忽略D
並只翻譯尾數。使用「D」而不是「E」讀取ASCII碼用科學計數法使用C
函數fscanf
將不接受格式'%10.6e'
,因爲它指望E
而不是指數中的D
。
當我在Python中遇到這個問題時,我放棄了,只是在將字符串轉換爲float之前使用了字符串替換。 但是在C中,我確信肯定還有另一種方式。
那麼,如何讀取一個數字爲D
而不是E
的文件作爲科學計數?請注意,我不是指如何自己讀取字符串,而是如何將它們轉換爲浮點數。
謝謝。
我很失望,C缺乏使用'D'而不是'E'讀取科學記數法的原生支持。你提出的代碼是最接近完美解決方案的。謝謝! – Escualo 2010-04-01 17:05:02
@Arrieta:我很失望,它不能解析出字母Q出現而不是數字0(零)的數字。似乎圖書館設計人員不明白我們的要求對於如此多的計劃有多麼重要...... ;-) – 2012-06-22 12:14:04