2016-09-21 47 views
1

我遇到了一個非常奇怪的情況。所以奇怪的是,我甚至不知道如何問我的問題!使用指數符號時printf中的奇怪符號

我正在用簡單格式生成輸出文件的代碼。這種格式的細節不是很重要。重要的是在文件的某個地方,有幾條(數萬條)行,每行有三對由空格和換行符分隔的數字,最後是\n

每個數字使用指數符號寫的,只是爲:

fprintf(outFile,"%e %e %e\n",x,y,0.0); 

其中xy雙打。

這是奇怪的部分。在文件中的一個,擁有超過10萬個+行左右,有印刷,因爲這

7.812500e-02 -1.875000g+00 0.000000e+00 

一條線到底是什麼G + 00 -1.875000g+00?!

我一直在使用這個代碼,超過5年,它已經產生的不是文件的幾萬多,這是我所見過這樣的事情還是第一次。我做了一些在線搜索,但找不到任何東西?

有人請保存我的理智!

+5

宇宙射線,有人嗎?奇偶錯誤 - 未糾正?字符中的2位在'e'和'g'之間進行了調整。 –

+2

'g'是一個貪婪的指數。這是貪婪的,因爲它吃了所有的號碼,只留下零:-) –

+1

建議備份硬盤和訂購更換 –

回答

1

這是一個錯誤,代碼中並沒有顯示出任何可能的情況下,用「G」,也許這個錯誤是由您的數據介紹,所以我建議檢查的具體文件,以顯示科學記數法,檢查所有的NP字符等,然後報告庫中的錯誤。

https://sourceware.org/bugzilla