在具有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,但无法帮助我......
感谢
答案 0 :(得分:0)
我建议逐行阅读并使用std::istringstream
来解析字符串
例如,您可以通过搜索第一个>
找到数字开头的位置
要么将弦流提前这个量,要么......
创建子字符串包含'&lt;'之前的所有文本。
使用此子字符串创建istringstream
。
然后尝试类似的事情:
unsigned int first, second;
double third, fourth;
string_stream >> first >> second >> third >> fourth;