C++ 在C/C+中读取特殊列,同时避免文本文件中的某些特殊字符+;
有人能帮我一下吗 我有一个文本文件,格式如下:C++ 在C/C+中读取特殊列,同时避免文本文件中的某些特殊字符+;,c++,c,C++,C,有人能帮我一下吗 我有一个文本文件,格式如下: "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.12999000
"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) 避免所有冗余的浮动?
5) 将结果同时放入新文件中
我非常感谢你们所有人,但是请考虑这个事实,这对我来说是非常紧急和重要的。
Mojdeh您可以使用
fscanf
读取这两个数字及其各自的指数。
大概是这样的:
fscanf(pFile, "\"%f\", \"%f\"", &number1, &number2);
fprintf(pFile2, "%g %g", number1, number2);
然后,您只需使用fprintf
将其写回第二个文件,如下所示:
fscanf(pFile, "\"%f\", \"%f\"", &number1, &number2);
fprintf(pFile2, "%g %g", number1, number2);
%g
格式使用最短的表示形式打印数字
有关这些函数的更多信息,请转到。逐行读取文件,使用
fgets
或getdelim
,使用strtok
解析您读取的行。现在编写代码,如果您仍然有问题,请向我们展示您的尝试。这是一个CSV文件,逗号分隔的值。非常常见的情况是,您会被谷歌的点击淹没。一旦得到列字符串,就只需将strtod()或sscanf()转换为double。