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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.89
Alexen
5 / 5 / 0
Регистрация: 14.11.2008
Сообщений: 77
#1

Поток cin - C++

20.03.2009, 11:01. Просмотров 8893. Ответов 6
Метки нет (Все метки)

Ребят подскажите почему после того как в цикле для потока cin устанавливается по команде Ctrl+z бит eofbit я не могу юзать поток cin он у меня все cin >> игнарирует даже если я очищаю поток cin.clear() он все равно игнарирует сины.
Пример:

C++
1
2
3
4
5
6
7
8
while(cin >> client) выход через Ctrl+z
{
if (client.getTelephon()) {temp << client;}
}
 
if(cin.rdstate() && !cin.eof()) {cerr << "Произошла ошибка ввода данных"<< endl; exit(1);}
cin.clear();
cin >> x; игнорируется
и как это исправить?? зарание СПС.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2009, 11:01     Поток cin
Посмотрите здесь:

Запись в поток cin >> - C++
Люди добрые подскажите где взять инфу по функциям для ввода/вывода и форматирования. Например, что бы это значило: cout &lt;&lt;...

Ввод нескольких значений, поток cin - C++
Привет :) Хотел бы узнать, как можно считать подряд несколько пар значений (например какое то слово и число, Slovo 39 Slovo2 43) чтобы...

Поток ввода cin и его очистка(?) - C++
Есть необходимость заполнять поля члены класса в консоли через ввод. Есть следующий отдельный класс, который и занимается этим делом: ...

Как читает поток ввода cin ? - C++
Спасибо большое, разобрался. Возникли новые вопросы: 1) как читает поток ввода оператор cin ? Например: char a,b; ...

Поток ввода cin работает сам по себе - C++
Привет :) Написал программу, забыл поставить после условия строку для ввода символов cin. Но он работает и так без меня. Т.е. я ввожу...

два вопроса по С++,вопрос про заг.файла и поток cin - C++
1.У меня есть заголовoчный файл,созданный в проекте А,в проекте В он нужен,как его туда добавить?Надо самим файл из папку в папку...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
20.03.2009, 11:16     Поток cin #2
Используй поиск. На форуме уже есть точно такая же тема. В ней ответ.

Добавлено через 1 минуту 55 секунд
Почему не выполняется один из операторов ввода,помеченые * например
XaosLord
3 / 3 / 1
Регистрация: 18.03.2009
Сообщений: 20
21.03.2009, 17:32     Поток cin #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Используй поиск. На форуме уже есть точно такая же тема. В ней ответ.

Добавлено через 1 минуту 55 секунд
Почему не выполняется один из операторов ввода,помеченые * например
Там нет ответа.

Присоединяюсь к вопросу. У меня получилось реализовать только выносом cin в отдельную функцию. Но это ИМХО извращение.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
21.03.2009, 17:56     Поток cin #4
Там нет ответа для тех, кто искать не может и читать тоже. Тут была тема, в которой я объяснил почему и что происходит. Самому мне искать ее влом.
Alexen
5 / 5 / 0
Регистрация: 14.11.2008
Сообщений: 77
22.03.2009, 14:13  [ТС]     Поток cin #5
Цитата Сообщение от XaosLord Посмотреть сообщение
Там нет ответа.

Присоединяюсь к вопросу. У меня получилось реализовать только выносом cin в отдельную функцию. Но это ИМХО извращение.
Есть ответ и думаю что тебе именно это надо: чтоб сразу вернуть рабочее состояние cin из состояния -1 необходимо запустить поток с нулевой позиции)) может я не правильно выразился но сделать так:

C++
1
2
3
4
5
while(cin >> client) выход через Ctrl+z
{.....}
cin.clear(); очистить поток и затем выставить позиционирование в 0
cin.seekg(0);
cin >> x; работает
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.03.2009, 17:20     Поток cin #6
clear не очищает поток. Она просто сбрасывает биты.
Игнорирует cin в цикле.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2009, 18:27     Поток cin
Еще ссылки по теме:

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода - C++
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть какие-нибудь замечания, то просьба написать что не...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами - C++
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с тремя параметрами, как из потока достать...

Отличие функции cin.get и cin.getline - C++
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get считывает символ разрыва строк и оставляет...

Cin + cin.getline() - C++
Почему, если после считывание с помощью cin считать строку с помощью cin.getline(), строка считывается только в той же строке где мы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alexen
5 / 5 / 0
Регистрация: 14.11.2008
Сообщений: 77
22.03.2009, 18:27  [ТС]     Поток cin #7
Цитата Сообщение от Vourhey Посмотреть сообщение
clear не очищает поток. Она просто сбрасывает биты.
Игнорирует cin в цикле.
Присоединяюсь сбрасывает биты ошибок состояния входного потока и устанавливает goodбит для потока )) не так выразился.
Yandex
Объявления
22.03.2009, 18:27     Поток cin
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru