Я столкнулся с очень странной ситуацией. Настолько странно, что я даже не знаю, как задать свой вопрос!Странный символ в printf при использовании показаний экспонента
Я работаю с кодом, который генерирует выходной файл в простом формате. Детали этого формата не очень важны. Важно то, что где-то в файле есть несколько (десятки тысяч) строк, каждая из которых содержит три пары чисел, разделенных пробелом и символом новой строки, \n
, в конце.
Каждое число записывается с использованием показателя степени нотации, просто как:
fprintf(outFile,"%e %e %e\n",x,y,0.0);
где x
и y
двойники.
Вот странная часть. В одном из файлов, с более чем 100K + линий или около того, есть строка печатается в этом
7.812500e-02 -1.875000g+00 0.000000e+00
Что на земле г + 00 в -1.875000g+00
?!
Я использовал этот код более 5 лет, он создал более десятков тысяч файлов, и это первый раз, когда я когда-либо видел такую вещь. Я немного искал онлайн-поиск, но ничего не нашел?
Кто-то, пожалуйста, сохраните мое здравомыслие!
Космические лучи, никто? Ошибка четности - не исправлена? 2-бит в характере получил tweaked между 'e' и' g'. –
'g' является жадным показателем. Это жадно, потому что он съел все цифры, оставив только ноль :-) –
Предложите резервное копирование жесткого диска и закажите замену –