0

writeToFile関数が呼び出されたときに、ファイルに文字列を含む新しい行を書き込みたいと思います。前の行またはtxt全体をクリアせずにそれは可能ですか?

void writeToFile(string str) {
    ofstream fileToWrite;
    fileToWrite.open("C:/Users/Lucas/Documents/apps/resultado.txt");
    if(fileToWrite.good()) {
        //write the new line without clearing the txt
                //fileToWrite << str won't work for this reason
    }
    fileToWrite.close();
}
4

1 に答える 1

2

はい。見上げstd::ios_base::atestd::ios_base::app.

void write_to_file(std::string const &str) { 
    std::ofstream fileToWrite("C:/Users/Lucas/Documents/apps/resultado.txt", 
                              std::ios_base::app);
    fileToWrite << str << "\n";
}

この場合、2 つの違いは関係ありませんがios_base::ate、ファイルを開くと最後に配置されることを意味するため、書き込みは最後に追加されますが、必要に応じて、ファイルの前の部分にシークすることができます。ファイルを作成し、そこにあるものを上書きします。を使用ios_base::appすると、書き込みを行う前に自動的に最後までシークするため、既存のデータを上書きするのではなく、書き込みが最後に追加されます。

于 2012-05-03T18:41:38.357 に答える