有人可以帮我解决这个问题吗? : 我有一个这种形式的文本文件:
"1.101511000000E+02","-3.066300000000E+01"
"8.328840000000E+01","-7.020080000000E+01"
"1.053746000000E+02","-4.622800000000E+01"
"1.314320000000E+01","-7.866200000000E+01"
"9.876160000000E+01","-5.844720000000E+01"
"3.129990000000E+01","-7.919930000000E+01"
"7.152530000000E+01","-7.527770000000E+01"
"2.849310000000E+01","-7.933210000000E+01"
"7.602290000000E+01","-7.410480000000E+01"`
它有4003行。我想阅读这些列,例如避免使用字符:'''和','。
然后我读取符号+或 - 并识别'E'以获得权力并将我的结果写入另一个文件,然后再使用它。我举一个例子说明我需要的东西:
1.101511000000 +02 -3.066300000000 +01
然后我要做的就是例如,一旦我得到第一列:
1.101511000000
当我知道它的力量2时,我这样做:
1.101511000000x10²
我将写给我的新文件的是:
110.1511 -30.663 83.2884 -70.2 105.3746 -46.228
等
所以主要问题是: 1)如何阅读此文本文件并避免使用这些特殊字符? 2)找到以E + 02等形式写的电源? 3)进行计算? 4)避免浮动中的所有冗余000? 5)将结果同时放在新文件中?
我提前感谢你们,但请考虑一下这对我来说非常紧迫和重要的事实。
Mojdeh
答案 0 :(得分:1)
您可以使用fscanf
以相应的指数读取这两个数字。
像这样:
fscanf(pFile, "\"%f\", \"%f\"", &number1, &number2);
然后您只需使用fprintf
将其写回第二个文件,如下所示:
fprintf(pFile2, "%g %g", number1, number2);
%g
格式使用最短的表示形式打印数字。
有关这些功能的更多信息,请转至http://www.cplusplus.com/reference/cstdio/fprintf/。