Самый короткий способ записи в файл/чтения из него

124
24 января 2020, 02:10

Попался мне такой короткий код, который пытается читать из файла число, и если не может, то пишет туда то, что было в переменной (предполагается, что она проинициализирована):

bool     ok = ifstream(filename) >> i;
if (!ok) ok = ofstream(filename) << i;

Но правильный ли он? Вопрос вызывает вторая строчка. Если мне память не изменяет, стримы в плюсах буферизированные, и запись в файл произойдет если мы вызовем close(), flush(), или напишем << endl. Не будет ли такого, что ok у нас окажется true, но в момент вызова деструктора стрим не сможет записать в файл данные, потому что, например, нет прав на запись в этот файл?

READ ALSO
Синхронизация вывода потоков POSIX

Синхронизация вывода потоков POSIX

Нужно что бы два потока параллельно печатали на экран(Первый поток печатает числа 1,2,3

131
как с вывести один элемент пары класса multimap?

как с вывести один элемент пары класса multimap?

Допустим у меня есть следующий код:

106
(c++)OpenGL и glfw - приключения на мою голову

(c++)OpenGL и glfw - приключения на мою голову

еееееПроблемы начались СРАЗУ

125
Стек exception&#39;ов, как обработать все?

Стек exception'ов, как обработать все?

Вопрос на засыпку, кто знает, можно ли перехватить MyException1 в func3?

123