Узнать статус I/O операции С++

268
10 июня 2017, 15:33

Есть ли возможность контроллировать статус выполнения операций вывода в С++ без try - catch блоков?

Я выполняю команду cout<<"Smthng" и хочу программно узнать, была ли эта операция успешной. То есть мне надо что-то типа Паскалевского IOResult, или какой-то вариации GetLastError(). Думал, что есть такое поле в ios, но там только типы для отлова исключений.

Answer 1

По умолчанию как раз операции с потоками исключений не генерируют. Так что можете просто проверять, как закончилась предыдущая операция - либо, например, if (cout.good()), либо пользуясь приведением к типу bool просто как if (cout). А поскольку операции ввода-вывода обычно возвращают ссылку на поток, то даже так:

if (cout << "Hello") ...
READ ALSO
LATEX не хочет отображать брать даннные из буфера

LATEX не хочет отображать брать даннные из буфера

Работаю с такой программой latex2rtf-23

232
Метод половинного деления

Метод половинного деления

Помогите мне! У меня не вычисляет корень вообще

296
Preparing to Olympiads [требует правки]

Preparing to Olympiads [требует правки]

С чего следует начать подготовку у ACM? И какие ресурсы вы рекомендуете?

208
Сортировать вектор структур

Сортировать вектор структур

Отсортировать вектор по одному из полей, используя алгоритмы STLПо возможности использовать все перегрузки сортировки (фраза, которую я не понял)

216