0

文字列の配列を動的に作成した C++ コードを書いています。文字列配列内のアイテム数と配列自体の両方を出力する関数を作成しました。次にやりたかったことは、配列の要素をテキスト ファイルに格納することですが、書き込んだファイルを開くと、配列の最後の要素しか表示されません。これが私がやっていることのサンプルです:

int num_elem = ReadNumElem(); // my function that gets the number of elements in the array of strings

string *MyStringArray = ReadNames(num_elem); // my function that reads a file and outputs the necessary strings into the array

for(int i = 0; i < num_elem < ++i) {
    ofstream ofs("C:\\Test\\MyStrings.txt")
    ofs << MyStringArray[i] << endl; // I also tried replacing endl with a "\n"
}

私は C++ を初めて使用するので、これが単純すぎる場合は申し訳ありませんが、しばらくの間検索しており、解決策が見つからないようです。最初の 2 つの関数は関係ありません。配列内の最後の要素だけでなく、すべてのデータが表示されるように、データをテキスト ファイルに出力する方法を知る必要があるだけです。ありがとう!

4

2 に答える 2

3

配列内で毎回ファイルを開き、その内容を上書きしています。

試す:

ofstream ofs("C:\\Test\\MyStrings.txt");    
for(int i = 0; i < num_elem ; ++i) {
            
    ofs << MyStringArray[i] << endl; // I also tried replacing endl with a "\n"
}
ofs.close();
于 2012-08-08T20:09:00.310 に答える
1

ループの外でファイルを宣言する必要があります

編集


申し訳ありませんが、一行で答えるつもりはありませんでしたが、とにかく今は完了しています。

于 2012-08-08T20:07:37.377 に答える