-2

有人可以帮我解决这个问题吗?:我有一个这种形式的文本文件:

"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.101511000000 x 10²我将写入我的新文件的是:

110.1511 -30.663 83.2884 -70.2 105.3746 -46.228

等等

所以主要问题是:1)我怎样才能阅读这个文本文件并避免这些特殊字符?2) 找到以 E+02 等形式书写的功率?3)做计算?4) 避免浮点数中所有多余的 000?5) 将结果同时放入一个新文件中?

我提前感谢大家,但请考虑一下这对我来说非常紧迫和重要的事实。

莫杰德

4

1 回答 1

1

您可以使用fscanf它们各自的指数来读取这两个数字。像这样的东西:

fscanf(pFile, "\"%f\", \"%f\"", &number1, &number2);

然后,您所要做的就是使用 将其写回第二个文件fprintf,如下所示:

fprintf(pFile2, "%g %g", number1, number2);

%g格式使用最短的表示形式打印数字。

有关这些函数的更多信息,请访问http://www.cplusplus.com/reference/cstdio/fprintf/

于 2013-11-02T13:30:33.263 回答