web-dev-qa-db-ja.com

fstreamはファイルを作成しません

テキストファイルが存在しない場合、テキストファイルを作成しようとしていますが、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_を指定することはできませんが、既存のファイルが存在することを期待していることを読みましたが、まだ存在しないファイルに他のパラメーターを指定する必要があるかどうかはわかりません。

21
raphnguyen

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

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

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

18
haitaka

引数を追加する必要があります。また、インスタンス化とオープンは1行に入れることができます。

fstream file("test.txt", fstream::in | fstream::out | fstream::trunc);
11
ceruleus

これにより:

#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();
}
2
ritesh_NITW