2012-05-03 16 views
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(); 
} 

答えて

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"; 
} 

は、両者の差が無関係ですが、あなたは、ファイルを開いたときios_base::ateを意味しますので、最後に追加されて書かれたものは - あなたがしたい場合は、ファイルの以前の部分を探してそこにあるものを上書きすることができます。 ios_base::appを使用すると、書き込みを行う前に自動的に最後まで検索されるので、既存のデータを上書きするのではなく、最後に追加する必要があります。

関連する問題