2011-08-03 40 views
12

私は、既存のテキストファイルの最後にストリームしたい文字列を持つプログラムを作成しました。私が持っているものはほとんどすべてがこれです:(C++)ファイルの末尾に文字列を書き込む(C++)

void main() 
{ 
    std::string str = "I am here"; 
    fileOUT << str; 
} 

私はこれに追加されるべき多くがあり実現し、私が私のためにコーディングする人を求めていますようだ場合、私は謝罪しますが、私は完全に失われていますなぜなら私は以前にこのタイプのプログラミングをしたことがないからです。

私はインターネットを介して来たさまざまな方法を試みましたが、これは動作する最も近いことであり、やや親しみです。

+1

'main'機能はint''返します。常に。 (元の引用符ではありません)正常終了またはEXIT_FAILUREの場合は、0またはEXIT_SUCCESSをオペレーティングシステムに返します。 –

+1

@Thomas Matthewsこれはコード全体ではありません...実際、これは私の主な機能でもありません。しかし、私のためにそれを知ってくれてありがとう! – ked

答えて

22

ファイルの末尾に内容を追加するにはstd::ios::app

#include <fstream> 

std::ofstream out; 

// std::ios::app is the open mode "append" meaning 
// new data will be written to the end of the file. 
out.open("myfile.txt", std::ios::app); 

std::string str = "I am here."; 
out << str; 
+0

ああ、私の神、こんにちは速い答えでした!本当にありがとう!私はそれが簡単だと信じていません。しかし、___。open( "file"、std :: ios :: app)は多くのメモリを占有するのですか?非常に大きなファイルで作業していますので、非常に重要です。 – ked

+0

@ked:いいえ、 'out.open(..)'と 'std :: ofstream out(..)'はデータ転送用のハンドルだけを開きます。あなたは大きなファイルを開くことができます。実際にメモリ全体に読み込まない限り、メモリについて心配する必要はありません。 –

+0

ありがとうトーンみんな!答えた人を含めて! – ked

2

ストリームを追加として開くと、そのストリームに書き込まれた新しいテキストがファイルの最後に書き込まれます。

+0

これは最も詳細な解答ではありませんが、それをダウンホートする必要はありません。完全に正確で完全です。 – Blindy

+0

新しいもので、コード自体を見る必要がありますが、それでも感謝の気持ちでした! – ked

5

を使用してファイルを開き、単にアペンドの略appモード(で(ファイルストリームからの略)ofstreamでファイルを開きます)。

#include <fstream> 
using namespace std; 

int main() { 
    ofstream fileOUT("filename.txt", ios::app); // open filename.txt in append mode 

    fileOUT << "some stuff" << endl; // append "some stuff" to the end of the file 

    fileOUT.close(); // close the file 
    return 0; 
} 
2

私はあなたのコード全体ではないと思いますが、それが間違っています。あなたは、ファイルに書き出します

の方法は、次のようになります。

#include <fstream> 
#include <string> 

// main is never void 
int main() 
{ 
    std::string message = "Hello world!"; 

    // std::ios::out gives us an output filestream 
    // and std::ios::app appends to the file. 
    std::fstream file("myfile.txt", std::ios::out | std::ios::app); 
    file << message << std::endl; 
    file.close(); 

    return 0; 
} 
+1

母、それは心配しないでください。私はちょうどファイルビットに書いていた、残りはまもなく200行です...これまでのところ – ked

関連する問題