web-dev-qa-db-ja.com

C ++のファイル(ログファイル)に新しい行を追加する

ロギング機能があり、これにはログファイルがあります。これで、プログラムを実行するたびに、以前に書き込まれたファイルが削除されず、現在のデータ(ログファイルにあるもの)が追加されます。

たとえば、明確にするために、ログファイルlogging_20120409.logを使用して、タイムスタンプを毎日保持しています。現在のタイムスタンプを書き込むプロジェクトを実行するとします。今、それを再実行すると、以前のタイムスタンプがそれに置き換えられます。この機能は必要ありません。前のタイムスタンプと現在のタイムスタンプが必要です。

助けてください

28
gandhigcpp

ファイルを「追加」モードで開きたいので、ファイルの以前の内容は削除されません。それには、ファイルを開くときにios_base::appを指定します。

std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);

たとえば、これを実行するたびに、ファイルにさらに1行追加されます。

#include <ios>
#include <fstream>

int main(){
    std::ofstream log("logfile.txt", std::ios_base::app | std::ios_base::out);

    log << "line\n";
    return 0;
}

したがって、最初に実行すると、

line

2回目:

line
line

等々。

51
Jerry Coffin

次のようなものを使用します。

#include <fstream>
#include <iostream>
using namespace std;
int main() {
  ofstream out("try.txt", ios::app);
  out << "Hello, world!\n";
  return 0;
}

Ios:appオプションは、ファイルの内容を削除する代わりに、出力をファイルの最後に追加します。

4

多分、追加オプションでファイルを開く必要があります。このような:

FILE * pFile;
pFile = fopen ("myfile.txt","a");

またはこれ:

fstream filestr;
filestr.open ("test.txt", fstream::app)
1
WeaselFox