Форум программистов, компьютерный форум CyberForum.ru

Флаг eofbit в потоке и условные операторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Доступ к закрытым членам базового класса http://www.cyberforum.ru/cpp-beginners/thread922408.html
помогите понять что я не так сделал ? #include <iostream> using namespace std; class A { int PrA1; public: int PuA1;
C++ mem_fun и mem_fun_ref Здорова! Есть задачка : "Реализуйте и протестируйте четыре функции mem_fun() и mem_fun_ref() (параграф 18.4.4.2)." Ну там наверно ошиблись не 4 а две функции да пусть две функции будет. Ну и как же мне их реализовать? Чем они хоть отличаются? Это похоже одни и те же функции, токо первая с указателями работает, а вторая с объектами ли хз. В общем свои нужно написать, наверно свой шаблон нужно... http://www.cyberforum.ru/cpp-beginners/thread922401.html
C++ С чего начать?
Я уже давно заинтересован в программировании и хочу заняться самообучением. Но не знаю с чего начать, какой язык программирования стоит выбрать для начала? Какие книги стоит приобрести?
Чтение из двух файлов и запись в один C++
Помогите с одной задачей. У меня есть два файла: 1. "oldmast.dat" в котором 4 поля: номер счета клиента, фимилия, имя и баланс; 2. "trans.dat" где 2 поля: номер счета клиента и вносимая сумма; И есть еще один пустой файл, который должен записать следующее, если номер счета совпадает в 1 файле и во 2 файла, то я должен их суммировать и записать в "newmast.dat"... Остальные случаи пока не...
C++ Расставить на доске N ферзей так, чтобы они не били друг друга http://www.cyberforum.ru/cpp-beginners/thread922352.html
смысл в том чтобы расставить на шахматной доске размером N*N, N ферзей так, чтобы они не били друг друна. пыиался сделать что то методом перебора, но программа зависает. где здесь может быть ошибка? #include <iostream> #include <cmath> using namespace std; int num; int q; bool ext = false;
C++ Прочитать все записи, номер которых кратен 5 и вывести их не экран. задан файл неопределённой длины, прочитать все записи, номер которых кратен 5 и вывести их не экран. подробнее

Показать сообщение отдельно
lss
921 / 851 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
13.07.2013, 06:29  [ТС]     Флаг eofbit в потоке и условные операторы
Цитата Сообщение от Olivеr Посмотреть сообщение
fail() возвращает true если флаг failbit или badbit установлен
Добавлено через 1 минуту
Если устанавливается eofbit, то устанавливается и failbit, но не наоборот.
То есть, этот код, по-вашему, должен выдать true?
C++
1
2
3
4
std::cin.setstate(std::istream::eofbit);
    if (std::cin.fail())
        std::cout << "true";
    else std::cout << "false";
Добавлено через 3 минуты
Да и ваш код из второго поста... eofbit установлен, но !faile() (как написал Croessmah) == 1, т.е. флаги failbit и badbit не установлены.

Добавлено через 5 минут
Цитата Сообщение от Olivеr Посмотреть сообщение
good() проверяет все флаги и возвращает false если хотя бы один из них установлен
Пишется, что взвращает true, если нет ошибок в потоке. Если проверяет все флаги, то для него утановленный eofbit - это ошибка в потоке. Тогда как же это:
Цитата Сообщение от Olivеr Посмотреть сообщение
Сообщение от lss
Получается, что говорить о флаге eofbit, как о флаге ошибки, неверно?
Думаю да. Для ошибок есть флаги failbit и badbit. И если какой либо из них поднимается, то это не влияет на eofbit.
Вообще поток следует проверять с помощью good()
Добавлено через 3 минуты
Цитата Сообщение от Olivеr Посмотреть сообщение
Вообще лучше скажите, что у вас не получается написать.
У меня всё получается. Просто до сегодняшнего дня был уверен, что установленный eofbit - это признак ошибки в потоке. Оказалось, что здесь всё запутанно. В одних случаях это трактуется как ошибка в потоке, в других - нет.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru