0

テキスト形式のデータファイルがあります。最初の 1 つは役に立たないので無視できますが、2 番目の列は必要なものです。coloum には、文字列、float などの各行に異なる値があります。一部の計算では、この coloum のメンバーのみを浮動させる必要があります。私はその方法に従い、最初にfloat配列を宣言して値を読み取り、">>"基本コマンドで配列を保存しました。

問題は、float 以外の行が来たときに、読み取り関数が壊れているように動作することです。浮動小数点以外の値を「0」として読み取り、その値として保存します。それは問題ありませんが、その後はフロートであっても値全体を「0」として読み取ります。

Datafile.txt (例)

aa 1.1
bb 2.2
cc 3.0
dd somestring
ee 4.3
ff 4.9

コード(例)

 do 
{
    dfile >> a >> dat[i]; 
    ofile << dat[i]<<endl;
    cout << dat[i]<<endl;
    i++;

}while(dfile.eof());

出力ファイル(例)

1.1
2.2
3.0
0
0
0
..goes 

問題を解決するために2つの方法を考えました。最初の 1 つは、浮動小数点以外の行をスキップすることです。2 つ目は、期間内の行を読み取ることです。フロート値がシーケンスにリストされているためです。

4

4 に答える 4