Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 12:56   #11
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Значит и проверка не нужна...)
Ещё как нужна иначе в k мусор будет )
netrino вне форума Ответить с цитированием
Старый 18.08.2009, 13:02   #12
Ok-ei
Пользователь
 
Регистрация: 29.03.2009
Сообщений: 22
По умолчанию

Спасибо всем откликнувшимся...

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Код:
....
if (cin.fail())
...
Что тут проверяется? Я как-то в Help не могу описание найти...
Ok-ei вне форума Ответить с цитированием
Старый 18.08.2009, 13:03   #13
LaptevVV
Пользователь
 
Регистрация: 15.08.2009
Сообщений: 37
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
А так не пойдёт?
Код:
int x;
cin >> x;
if (cin.fail())
{
	cout << "ошибочка вышла";
}
Тут нюансец есть.
Поток может установиться в состояние fail даже в случае корректного ввода в x. Например, если во входных данных написано 123-234
тогда в х попадет 123б но поток будет в состоянии fail, ибо минус - не является допустимым символом для целого числа, если стоит после, а не до.
Поэкспериментируйте, мож и по пробелу и по '\n' в состояние fail переходит - я просто не помню.
LaptevVV вне форума Ответить с цитированием
Старый 18.08.2009, 13:04   #14
LaptevVV
Пользователь
 
Регистрация: 15.08.2009
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Ok-ei Посмотреть сообщение
Спасибо всем откликнувшимся...
Что тут проверяется? Я как-то в Help не могу описание найти...
Проверяется состояние потока. Искать в хелпе состояния потока.
; состояния:
good, fail, bad и eof
LaptevVV вне форума Ответить с цитированием
Старый 18.08.2009, 13:07   #15
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Ok-ei Посмотреть сообщение
Спасибо всем откликнувшимся...



Что тут проверяется? Я как-то в Help не могу описание найти...
проверяется флаг failbit, который выставляется при ошибке ввода
ф-ция fail(): cplusplus.com
netrino вне форума Ответить с цитированием
Старый 19.08.2009, 13:02   #16
Ok-ei
Пользователь
 
Регистрация: 29.03.2009
Сообщений: 22
По умолчанию

Цитата:
Сообщение от LaptevVV Посмотреть сообщение
Проверяется состояние потока. Искать в хелпе состояния потока.
; состояния:
good, fail, bad и eof
Спасибо. Разобралась...

Спасибо всем откликнувшимся за помощь.
Ok-ei вне форума Ответить с цитированием
Старый 19.08.2009, 22:37   #17
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Вы чего травонутые - битовые маски проверять?!
Не проще ли использовать функцию isdigit() или isalpha() или isspace() вместе с isalpha()
MaTBeu вне форума Ответить с цитированием
Старый 19.08.2009, 22:49   #18
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от MaTBeu Посмотреть сообщение
Вы чего травонутые - битовые маски проверять?!
Не проще ли использовать функцию isdigit() или isalpha() или isspace() вместе с isalpha()
ИМХО совсем не проще, это актуально только при посимвольном вводе, который сам по себе далеко не всегда актуален). И чем же плохо проверять состояние потока?) Тем более, если поток сам справляется с оными проверками и выставляет соответсвующие флаги при ошибке ввода.

Последний раз редактировалось netrino; 19.08.2009 в 22:55.
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про C# BanzoO Общие вопросы C/C++ 1 02.07.2009 03:47
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос про IP ЧИЖ Работа с сетью в Delphi 1 23.06.2008 13:53
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24
Вопрос про memo Artem Общие вопросы Delphi 1 14.09.2007 10:47