26

テキストファイルが存在しない場合は、テキストファイルを作成しようとしているだけで、fstreamこれを行うことができないようです。

#include <fstream>
using std::fstream;

int main(int argc, char *argv[]) {
    fstream file;
    file.open("test.txt");
    file << "test";
    file.close();
}

open()ファイルを作成するために、関数に何かを指定する必要がありますか? ios::in既存のファイルがそこにあると予想されるため、指定できないことを読みましたが、まだ存在しないファイルに他のパラメーターを指定する必要があるかどうかはわかりません。

4

3 に答える 3

26

次のように fstream::out を open メソッドに追加する必要があります。

file.open("test.txt",fstream::out);

fstream フラグの詳細については、次のリンクを参照してください: http://www.cplusplus.com/reference/fstream/fstream/open/

于 2013-03-27T19:22:05.413 に答える
16

いくつかの引数を追加する必要があります。また、インスタンス化とオープニングは 1 行で行うことができます。

fstream file("test.txt", fstream::in | fstream::out | fstream::trunc);
于 2013-03-27T19:19:59.920 に答える
3

これは次のようになります。

#include <fstream>
#include <iostream>
using std::fstream;

int main(int argc, char *argv[]) {
    fstream file;
    file.open("test.txt",std::ios::out);
    file << fflush;
    file.close();
}
于 2013-03-27T19:24:56.860 に答える