2012-04-06 8 views
0
struct GPattern() { 
    int gid; 
    .... 
} 
class Example() { 
public: 
    void run(string _filename, unsigned int _minsup); 
    void PrintGPattern(GPattern&, unsigned int sup); 
    .... 
}; 

Eample::run(string filename, unsigned int minsup) { 
    for(...) { // some condition 
     // generate one GPattern, and i want to ouput it 
     PrintGPattern(gp, sup); 
    } 
} 

Example::PrintGPattern(GPattern& gp, unsigned int sup) { 
    // I want to ouput each GPattern to a .txt file 
} 

runは、それに応じてGPatternを生成するために使用されます。どのように各データをファイルに出力するのですか?

私がファイルに出力したいのは、オリジナルのGPatternを再構成するテキストです。

私はすべてGPatternをあらかじめ保存しておくことはできません。生成するときにファイルにGPatternを出力する必要がありますが、実装方法はわかりません。

Example::PrintGPattern(GPattern& gp, unsigned int sup) { 
    ofstream outGPattern("pattern.txt") 

    outGPattern << gp.gid; << " " << gp.anotherGid << " " .... 

    outGPattern.close() 
} 

が正しい見てきました:

+0

オリジナルの「GPattern」を.txtファイルに置き換えたくありません。 – LoveTW

+0

質問に多くの穴があります。私はあなたに答えがあると思うが、私はそれらの多くの穴に十分に自信がない。 – Alexander

+0

あなたの考えを教えてもらえますか?ありがとう:) – LoveTW

答えて

1

まあ、ofstreamのは、行くための正しい方法です...私はクラスExampleofstream outGPatter("pattern.txt")を宣言しようとしたが、それは役に立ちませんpattern.txtの場所?それはあなたの.exeがあるフォルダーか、すべての.hと.cppファイルがあるフォルダー(少なくともVSの場合)になければなりません。

あなたが同じファイルにすべてのパターンを書きたいならば、あなたは(上書きしない)追加を確認する必要がありpattern.txt

ofstreamのoutGPattern(「pattern.txt」、イオス::アプリ)

だから、最初のIOSなしofstreamのを作ることができます::アプリを(あなたのプログラムの開始時に)テキストファイルをクリアします。次に、ios :: appを使って他のすべてのストリームを作成し、上書きするのではなく新しいテキストを追加します。

また、ofstreamをExampleのメンバ変数にすることもできます。その後、あなたはそれを一度しか構築しません。

+0

しかし、あなたの方法では、元のデータが置き換えられるので、私は最新のGPatternを得ることができます。 – LoveTW

+0

置き換えたくない場合は、ios :: appを使用する必要があります。編集する。 – s3rius

+0

それは仕事です!お返事をありがとうございます! – LoveTW

1

私のような、あなたは追加モードを使用することができると思う:私はそれを参照してください方法

ofstream outGPattern; 
outGPattern.open("GPattern.txt", ios::app); 
+0

あなたの返信をありがとう! – LoveTW

1

、あなたは複数のGPatternAPPEND情報にしたい、あなたは単にI/Oモードを設定する必要がありますコンストラクタのios::app

struct GPattern { 
    int gid; 
    friend ostream& operator <<(ostream& o, GPattern gp) { 
    return o << "(gid=" << gp.gid << ")"; 
    } 
    ... 
} 

Example::PrintGPattern(GPattern& gp, unsigned int sup) { 
    ofstream fout("pattern.txt", ios::app) 
    fout << gp << endl; 
    fout.close() 
} 
+0

あなたの返信ありがとう!ベスト:) – LoveTW

関連する問題