2011-12-26 13 views
0

これまではやったことがありますが、サンプルコードが見つかりません。複数の行をテキストファイルに出力する

テキストファイルに複数の行を出力する必要があります。今は最後の行だけを出力するので、ループが実行されるたびに前の行を上書きすると仮定します。どのようにしてそれを出力して、次の行に出力するのですか?前の行を上書きせずに出力しますか?ここで

はスニペットです:あなたがループに入る前に、

int main() 
{ 
    int n = 1; 

    while (n <= 100) 
    { 
     int argument = 0 + n; 

     ofstream textfile; 
     textfile.open ("textfile.txt"); 
     textfile << argument << endl; 
     textfile.close(); 

     ++n; 
    } 

    return 0; 
} 

答えて

3

は、ファイルを開いて、あなたがループを終了した後、それを閉じます。

+0

ありがとうございました。私はそれが単純なものだったと思った...脳はちょうど働きたくなかった。 –

0

ループ外でファイルを開いたり閉じたりする必要があります。ファイルを開くと、デフォルトで上書きされます。追加モードを指定することもできますが、ファイルを開くには多少時間がかかるので、この場合は実際には実行したくありません。この代わりに

-1

用途:

int main() 
{ 
    int n = 1; 

    while (n <= 100) 
    { 
     int argument = 0 + n; 

     ofstream textfile; 
     textfile.open ("textfile.txt", ofstream::out | ofstream::app); 
     textfile << argument << endl; 
     textfile.close(); 

     ++n; 
    } 

    return 0; 
} 
1

それはオープンモードが上書きされ、デフォルトのように見えるので、それだけで以前に現在のファイルに書き込まれているもので、ファイルには何も上の書き込みになるだろう。

以下は、何度も開くのではなく、ファイルハンドルを開いたままにしておくことです。まだ追加したい場合は、次のようにしてください:

textfile.open ("textfile.txt", ios::out | ios::app); 

出力するファイルを開き、ファイルの最後に追加します。

int main() 
{ 
int n = 1; 

ofstream textfile; 
textfile.open ("textfile.txt"); 

while (n <= 100) 
    { 
    int argument = 0 + n; 

    textfile << argument << endl; 

    ++n; 
    } 
textfile.close(); 

return 0; 
} 
関連する問題