读取外部文件并在类似xml的输入中分配变量

时间:2012-12-17 20:56:59

标签: c++

在具有xml格式(但不是xml)的文件中

 <mgrwt event="1">
<rscale>  1 1234</rscale>
<asrwt>0 4234</asrwt>
<pdfrwt beam="1">  1        2 0.11790045E+00 0.22210436E+03</pdfrwt>
<pdfrwt beam="2">  1       -2 0.92962177E-02 0.22210436E+03</pdfrwt>
<totfact> 0.34727485E+01</totfact>
<matchscale> 0.10000000E+11 0.41999999E+02 0.61496031E+02</matchscale>
</mgrwt>

我想用C ++读取文件(我知道;-)逐块,然后将变量分配给每个块的子组件, - 我知道例如

中的所有数字
 <pdfrwt beam="1">  1        2 0.11790045E+00 0.22210436E+03</pdfrwt>

1 2 0.11790045E+00 0.22210436E+03总是数字,而且永远不会是字符串,所以问题是,如何从每个块中的每一行中删除/读取按空格分隔的数字?

我也试过这个Read input numbers separated by spaces,但无法帮助我......

感谢

1 个答案:

答案 0 :(得分:0)

我建议逐行阅读并使用std::istringstream来解析字符串 例如,您可以通过搜索第一个>找到数字开头的位置 要么将弦流提前这个量,要么......

创建子字符串包含'&lt;'之前的所有文本。 使用此子字符串创建istringstream。 然后尝试类似的事情:

unsigned int first, second;
double third, fourth;
string_stream >> first >> second >> third >> fourth;