2016-09-21 76 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