Подтвердить что ты не робот

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, поскольку ожидаете, что уже существует существующий файл, но я не уверен, что для файла, который еще не существует, необходимо указать другие параметры.

4b9b3361

Ответ 1

Вы должны добавить fstream:: out, чтобы открыть метод следующим образом:

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

Дополнительная информация о флажках fstream, посмотрите эту ссылку: http://www.cplusplus.com/reference/fstream/fstream/open/

Ответ 2

Вам нужно добавить некоторые аргументы. Кроме того, запуск и открытие можно поместить в одну строку:

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

Ответ 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();
}