Режим по умолчанию для fstream

Я смотрел на SO сообщение Неопределенность режимов открытия потока файлов C ++. Я хотел знать режим открытия файла по умолчанию для fstream. Один из ответов говорит:

Из вышесказанного следует, что следующий код открывает файл с
точно такие же открытые флаги fstream f («a.txt», ios_base :: in |
ios_base :: из); ifstream g («a.txt», ios_base :: out); ofstream
h («a.txt», ios_base :: in);

Так что, если я правильно понимаю, в случае, если я создаю объект fstream, я должен иметь возможность либо читать, либо писать.

Но ниже код не записывает никаких данных в файл

fstream testFile1;
testFile1.open("text1.txt");
testFile1<<"Writing data to file";
testFile1.close();

Однако режим добавления, как указано ниже, создает текстовый файл с данными «Запись данных в файл».

testFile1.open("text1.txt", ios::out);

Так ли режим по умолчанию определяется реализацией? Я использую набор инструментов TDM-GCC-64.

2

Решение

Режим по умолчанию ifstream является in, Режим по умолчанию ofstream является out, Вот почему они названы так. fstream имеет нет режим по умолчанию.

Ваш пример показывает только два значения по умолчанию, и это показывает, что без явных аргументов. Тот fstream f("a.txt", ios_base::in | ios_base::out) использует два явных аргумента именно потому, что нет режима по умолчанию.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]