0

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、常に数字であり、決して文字列ではないため、問題は、各ブロックの各行からスペースで区切られた数字をどのように削除/読み取ることができるかです。

スペースで区切られたこの読み取り入力番号も試しましたが、役に立ちませんでした..

ありがとう

4

1 に答える 1

0

行ごとに読みstd::istringstream、文字列の解析に使用することをお勧めします。
たとえば、最初のを検索することで、番号の先頭がどこにあるかを見つけることができます>
この量だけ文字列ストリームを進めるか...

'<'の前のすべてのテキストを含むサブストリングを作成します。この部分文字列を使用して作成しますistringstream。次に、次のようなものを試してください。

unsigned int first, second;
double third, fourth;
string_stream >> first >> second >> third >> fourth;
于 2012-12-17T21:41:28.993 に答える