1

複数のCSVファイルを入力として使用するC++プログラムを作成しました。一度に1つずつ開き、唯一のファイルである出力ファイルにデータを抽出した後に閉じます。

getline(inFile,line); を実行します。outFile << 行 << endl;

私はこのコードを実行しますが、約200〜300行後に突然出力されるファイルはわずかで、出力CSVファイルに大きな空白があります

しかし、ループ内の system("Pause") のようにコードを遅くすると、必要なものを完全に抽出できます....

私のプログラムは高速に実行されていますか? getline が必要なものの一部をスキップするのはなぜですか?

問題がどこから来ているのか、どこから始めればよいのか本当にわかりません

どうもありがとう!

if (dataname[i] == dataname)
{
    inFile.seekg(datalength[i], ios::beg);
    for (int j = 0; j < datacount[i]; j++)
    {
        getline(inFile, line);
        outFile << line << endl;
    }

}
4

1 に答える 1

1

getline で seekg が機能しない理由を参照してください。

getline(inFile, line) 呼び出しによって作成された可能性があるすべてのエラー フラグをクリアするには、seekg(pos) 呼び出しの前に clear() 呼び出しを追加します。

inFile.clear();  // Clears all error flags.
inFile.seekg(pos);
于 2015-04-09T21:50:00.440 に答える