Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проверка успеха write для ofstream

284
13 декабря 2006 года
michael_is_98
587 / / 25.02.2005
Ребята, какую функцию нужно вызывать, чтобы проверить, что write нормально выполнился. Есть good() и fail(), что же нужно
4.1K
13 декабря 2006 года
GRIENDERS
117 / / 06.06.2006
Цитата: michael_is_98
Ребята, какую функцию нужно вызывать, чтобы проверить, что write нормально выполнился. Есть good() и fail(), что же нужно


Просто используй проверку на NULL:

 
Код:
ofstream ofile;
.....
ofile.write(...);
if (!ofile) cout<<"Запись не выполнена";
3
13 декабря 2006 года
Green
4.8K / / 20.01.2000
На какой-такой NULL ?

Запись
 
Код:
if (!ofile) ...

эквивалетна записи
 
Код:
if ( ofile.fail() ) ...

никакого NULL, только true или false
4.1K
13 декабря 2006 года
GRIENDERS
117 / / 06.06.2006
Цитата: Green
На какой-такой NULL ?

Запись
 
Код:
if (!ofile) ...

эквивалетна записи
 
Код:
if ( ofile.fail() ) ...

никакого NULL, только true или false



Ну если быть точным, то да. Потоковый объект в случае ошибки возвращает 0, в случае успеха - значение указателя.

3
13 декабря 2006 года
Green
4.8K / / 20.01.2000
Цитата: GRIENDERS
Ну если быть точным, то да. Потоковый объект в случае ошибки возвращает 0, в случае успеха - значение указателя.


Извиняюсь за назойливость, но объект не может ничего возвращать, возвращают методы и операторы.

Оператор operator!(), так же, как и метод fail() возвращают значение типа bool, т.е. true или false, но не 0 или значение указателя.

И хотя, предложенный тобой код вполне уместен, следует приводить правильную аргументацию, а не запутывать людей неверной информацией.

21K
13 декабря 2006 года
Alexion
11 / / 03.12.2006
По хорошему, если брать грубый вариант, то при открытии файл зарание провряется на возможность чтения и записи.:cool:
3
14 декабря 2006 года
Green
4.8K / / 20.01.2000
Ну всякое случается...
Например, место на носителе может кончиться.
284
14 декабря 2006 года
michael_is_98
587 / / 25.02.2005
Спасибо, сейчас попробуем
4.1K
14 декабря 2006 года
GRIENDERS
117 / / 06.06.2006
Цитата: Green
Извиняюсь за назойливость, но объект не может ничего возвращать, возвращают методы и операторы.

Оператор operator!(), так же, как и метод fail() возвращают значение типа bool, т.е. true или false, но не 0 или значение указателя.


Если хочешь я приведу тебе цитату из книги Лафоре, где сказано, что ПОТОКОВЫЙ ОБЪЕКТ возвращает 0 или ЗНАЧЕНИЕ УКАЗАТЕЛЯ!!

3
14 декабря 2006 года
Green
4.8K / / 20.01.2000
Можешь привести, только это ничего не меняет. Объекты ничего не возвращают, как я уже говорил. Кто и что возвращает я уже тоже сказал, повторяться не буду.
Так что кто-то из вас ошибается: либо ты, либо переводчик, либо Лафоре.
4.1K
14 декабря 2006 года
GRIENDERS
117 / / 06.06.2006
Цитата: Green
Можешь привести, только это ничего не меняет. Объекты ничего не возвращают, как я уже говорил. Кто и что возвращает я уже тоже сказал, повторяться не буду.
Так что кто-то из вас ошибается: либо ты, либо переводчик, либо Лафоре.


Ну допустим это неточность переводчиков. Но возвращаемое значение типа int, а не bool точно

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог