ofstream ofile;
.....
ofile.write(...);
if (!ofile) cout<<"Запись не выполнена";
Проверка успеха write для ofstream
Ребята, какую функцию нужно вызывать, чтобы проверить, что write нормально выполнился. Есть good() и fail(), что же нужно
Цитата: michael_is_98
Ребята, какую функцию нужно вызывать, чтобы проверить, что write нормально выполнился. Есть good() и fail(), что же нужно
Просто используй проверку на NULL:
Код:
Запись
Код:
if (!ofile) ...
эквивалетна записи
Код:
if ( ofile.fail() ) ...
никакого NULL, только true или false
Цитата: Green
На какой-такой NULL ?
Запись
эквивалетна записи
никакого NULL, только true или false
Запись
Код:
if (!ofile) ...
эквивалетна записи
Код:
if ( ofile.fail() ) ...
никакого NULL, только true или false
Ну если быть точным, то да. Потоковый объект в случае ошибки возвращает 0, в случае успеха - значение указателя.
Цитата: GRIENDERS
Ну если быть точным, то да. Потоковый объект в случае ошибки возвращает 0, в случае успеха - значение указателя.
Извиняюсь за назойливость, но объект не может ничего возвращать, возвращают методы и операторы.
Оператор operator!(), так же, как и метод fail() возвращают значение типа bool, т.е. true или false, но не 0 или значение указателя.
И хотя, предложенный тобой код вполне уместен, следует приводить правильную аргументацию, а не запутывать людей неверной информацией.
По хорошему, если брать грубый вариант, то при открытии файл зарание провряется на возможность чтения и записи.:cool:
Например, место на носителе может кончиться.
Спасибо, сейчас попробуем
Цитата: Green
Извиняюсь за назойливость, но объект не может ничего возвращать, возвращают методы и операторы.
Оператор operator!(), так же, как и метод fail() возвращают значение типа bool, т.е. true или false, но не 0 или значение указателя.
Оператор operator!(), так же, как и метод fail() возвращают значение типа bool, т.е. true или false, но не 0 или значение указателя.
Если хочешь я приведу тебе цитату из книги Лафоре, где сказано, что ПОТОКОВЫЙ ОБЪЕКТ возвращает 0 или ЗНАЧЕНИЕ УКАЗАТЕЛЯ!!
Так что кто-то из вас ошибается: либо ты, либо переводчик, либо Лафоре.
Цитата: Green
Можешь привести, только это ничего не меняет. Объекты ничего не возвращают, как я уже говорил. Кто и что возвращает я уже тоже сказал, повторяться не буду.
Так что кто-то из вас ошибается: либо ты, либо переводчик, либо Лафоре.
Так что кто-то из вас ошибается: либо ты, либо переводчик, либо Лафоре.
Ну допустим это неточность переводчиков. Но возвращаемое значение типа int, а не bool точно