Fortranフォーマットのファイルを読み込みながら、Fortran read(*,*)
の機能をC++でミラーリングする方法を探しています。私はよく知っていて、シンタックスのようなストリームを使いたいと思っていますが、自分で書く方法やストリームを利用して私が必要なことをする方法がわかりません。私は、次のような行を持つファイルを持っている:C++ストリームを使用してFortranレコード形式のファイルを読み取る
'Version' '5.3'
'This set has 1 member'
'Variable','nlo','EvolCode'
'list',1,1
1.E-05,1.,1.25,10000000.
0.00949 0.00208 -8.77372 0.89445 0.00000 0.00000 0.43318 0.89446
あなたは、私が別の区切り文字(改行、スペースやカンマ)などの文字列を読み込むとき、それは引用符を同様に尊重することを確認することに対処する必要が見ることができるように「忘れる」(つまり、結果の文字列の一部として終わることはありません)。結果のC++のようになるのに対し
read(*,*) dummyString, versionString
read(*,*) descriptoinString
read(*,*) type, order, code
read(*,*) listType, number, repeats
read(*,*) double1, double2, double3, double4
read(*,*) a1, a2, a3, a4, a5, a6, a7, a8
:にstringstreamとの私の基本的なテストから
stream >> dummyString >> versionString;
stream >> descriptoinString
stream >> type >> order >> code
stream >> listType >> number >> repeats
stream >> double1 >> double2 >> double3 >> double4
stream >> a1 >> a2 >> a3 >> a4 >> a5 >> a6 >> a7 >> a8
、それが複数の区切り文字を受け入れ、保持することはできません
Fortranでは、あなたは次のように書きます逆のカンマ。
どのような行動をとっているのですか?
が仕事のために優れているC++での流れのように思える参照してください。 –