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する必要がありますが、実装方法がわかりません。

ofstream outGPatter("pattern.txt")クラスで宣言しようとしましExampleたが、役に立ちません...

4

3 に答える 3

1

まあ、ofstreamは正しい方法です:

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

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

    outGPattern.close()
}

pattern.txt の正しい場所を見ましたか? .exe があるフォルダー、またはすべての .h および .cpp ファイルがあるフォルダー (少なくとも VS の場合) にある必要があります。

すべてのパターンを同じファイルに書き込みたい場合は、pattern.txt を追加する (上書きしない) ようにする必要があります。

ofstream outGPattern("pattern.txt",ios::app)

したがって、プログラムの開始時に (テキストファイルをクリアするために) ios::app なしで最初に ofstream を作成できます。次に、ios::app を使用して他のすべてのストリームを構築し、上書きする代わりに新しいテキストを追加します。

または、ofstream を Example のメンバー変数にすることもできます。その後、一度だけ構築します。

于 2012-04-06T07:18:07.223 に答える
1

次のような追加モードを使用できると思います。

ofstream outGPattern;
outGPattern.open("GPattern.txt", ios::app);
于 2012-04-06T08:31:42.147 に答える