4

異なるofstreamsを使用して2つのファイルを同時に開くことはできませんか?私がしようとしているのは、2つのストリームに書き込むことです。1つはループが繰り返されるたびに変更される可変ファイル名を持ち、もう1つは固定ファイル名を持ち、私が書いているデータはループのすべての反復で追加されます。実証するために:

ofstream file_variable_name;
ofstream file_to_be_appended;

{  //THIS IS A LOOP, variable_name changes at every iteration

file_variable_name.open(variable_name.c_str(), ios::out);
file_to_be_appended.open("fixed name", ios::out | ios::app);

//Do lots of things here, make data ready to be written to file

file_variable_name << "write something" << endl;
file_to_be_appended << "write same as above, but this is to be appended" << endl;

file_variable_name.close();
file_to_be_appended.close();
}

どういうわけか、開いて追加するのはもちろんのこと、2番目のファイルを作成することさえできませんでした。完全なコード(約1000行程度、切り捨てる必要があります)も送信できますが、上記で私がやろうとしていることを説明でき、論理的な欠陥があればプロには明らかだと思いました。

すべての提案を事前に感謝します!

4

2 に答える 2

1

あなたが投稿したコードを単純なプログラムに変えます:

#include <iostream>
#include <fstream>

int main() {
  ofstream file_variable_name;
  ofstream file_to_be_appended;

  file_variable_name.open("variable_name.txt", ios::out);
  file_to_be_appended.open("fixed_name.txt", ios::out | ios::app);

  file_variable_name << "write something" << endl;
  file_to_be_appended << "write same as above, but this is to be appended" << endl;

  file_variable_name.close();
  file_to_be_appended.close();

  return 0;
}

それを編集して、ダミーのファイル名でループを追加します。途中で問題が発生した場合、このコードは問題の可能性を絞り込むのに役立つほど単純です。

于 2012-07-26T15:39:29.130 に答える