28

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

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

助けてください

4

3 に答える 3

55

ファイルを「追加」モードで開きたいので、ファイルの以前の内容は削除されません。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

等々。

于 2012-04-09T09:17:22.983 に答える
6

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

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

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

于 2012-04-09T09:13:31.733 に答える
1

追加オプションでファイルを開く必要があるかもしれません。このような:

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

またはこれ:

fstream filestr;
filestr.open ("test.txt", fstream::app)
于 2012-04-09T09:11:36.527 に答える