1

ファイルの内容を読み取って別のファイルにコピーするC++プログラムに取り組んできましたが、常に最初の行をスキップしているようです。他の人がこれに問題を抱えているのを見たことがあります。彼らは次のコード行を使用しました。

file.clear();
file.seekg(0);

位置をリセットしますが、私にはうまくいきません。複数の場所で試しましたが、まだうまくいきません。何か案は?これが私のコードです。

ofstream write("Mar 23 2013.txt");

for(int x = 1; x <= 50; x++){

    stringstream ss;
    ss << "MAR23_" << x;

    ifstream file(ss.str().c_str());

    if(!file.is_open())
        cout << ss.str() << " could not be opened/found." << endl;
    else{  

        while(getline(file,line)){

            file >> time >> ch >> sensor1 >> ch >> temp >> ch >> 
                    sensor2 >> ch >> sensor3;

            file.ignore(numeric_limits<streamsize>::max(), '\n');

            //output = convertEpoch(time);

            write << time << "  Temperature:" << temp << "ºF  S1:" <<
                        sensor1 << "  S2:" << sensor2 << "  S3:" << 
                        sensor3 << endl;

        }
        file.close();
    }  
}

write.close();

return 0;
4

2 に答える 2

9

に読み込んだため、最初の行がありませんline。実際、最初の行だけでは足りないはずです。

ファイルから読み取ったら、文字列ストリームを使用します。

while (std::getline(infile, line))
{
    std::istringstream iss(line);
    iss>> time >> ch >> sensor1 >> ch >> temp >> ch >> 
                    sensor2 >> ch >> sensor3;
// ...


}
于 2013-04-04T00:46:03.700 に答える