| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Обработка ошибок потоков |
| Автор: RomaKiev 18.1.2011, 18:44 | ||
| Доброго времени суток! Помогите разобраться в обработке ошибок потоков Есть фрагмент кода:
Первый вопрос: Переменная b является целочисленной. Каким образом функция good() определяет корректность ввода данных? По типу переменной, в которую я буду сохранять вводимые данные, или по каким-либо другим критериям? Второй вопрос: Неясно назначение функции ignore()? Что она делает? На этом же форуме прочитал следующее: ignore(n,'\n') число пропускаемых символов и символ разделения т.е. пропускает n символов, если ранее не будет найден '\n', далее если '\n' введен раньше n то будет удален из буфера и ignore() завершит работу. Какие именно символы она пропускает, кроме разделителя? Третий вопрос: Неясно назначение функции clear()? Заранее спасибо! |
| Автор: mes 18.1.2011, 18:49 |
| http://cplusplus.com/reference/iostream/ios/good/ http://cplusplus.com/reference/iostream/istream/ignore/ http://cplusplus.com/reference/iostream/ios/clear/ |
| Автор: RomaKiev 18.1.2011, 18:57 | ||
За ссылки конечно спасибо, но я, к сожалению, не владею английским языком. |
| Автор: Estranged 18.1.2011, 19:30 |
| Учить программирование не зная английского почти невозможно. Вся документация на английском. |
| Автор: toxx 18.1.2011, 19:35 | ||
там английский никакой + пример есть |
| Автор: Alca 19.1.2011, 10:51 | ||
Хорошо, что не на китайском )) |
| Автор: JЕT 26.1.2011, 11:14 | ||||||||
Функция good() возвращает true, если для потока не установлен ни один из битов: failbit, badbit, eofbit.
Те, которые будут переданы в поток. Например:
Вы вводите qwerty, а получаете erty. То есть пропускается первые 2 символа.
Для очистки битов ошибок и установки goodbit. |
| Автор: RomaKiev 26.1.2011, 17:02 | ||||||||||||
Спасибо за ответ! Но не могли бы вы обьяснить ещё один момент: а с какой целью мы используем функцию cin.ignore(10, '\n') именно здесь?
Ведь мы то уже считали данные из потока и поместили их в переменную b. Какие символы мы пропускаем далее как в конструкции if, так и после нее? |