Попался мне такой короткий код, который пытается читать из файла число, и если не может, то пишет туда то, что было в переменной (предполагается, что она проинициализирована):
bool ok = ifstream(filename) >> i;
if (!ok) ok = ofstream(filename) << i;
Но правильный ли он? Вопрос вызывает вторая строчка. Если мне память не изменяет, стримы в плюсах буферизированные, и запись в файл произойдет если мы вызовем close()
, flush()
, или напишем << endl
. Не будет ли такого, что ok
у нас окажется true
, но в момент вызова деструктора стрим не сможет записать в файл данные, потому что, например, нет прав на запись в этот файл?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно что бы два потока параллельно печатали на экран(Первый поток печатает числа 1,2,3
Вопрос на засыпку, кто знает, можно ли перехватить MyException1 в func3?