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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2024, 14:59   #11
Iskatel S
Пользователь
 
Регистрация: 16.06.2012
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
Iskatel S, в переменную запишется 0. , а строка останется во входном потоке. У объекта потока выставится флаг ошибки
Нашёл. А наличие флага ошибки можно определить при помощи функции cin.fail(). Но это означает, что в cin ещё и тип переменной передаётся, а как он передаётся?
Допустим я пишу функцию, в которую передаётся указатель на переменную и тип переменной. Если тип будет string, то переменная просто вводится при помощи cin, если тип будет числовой, то сначала вызывается cin, затем проверяется функция cin.fail() и если будет true, то будет выведено сообщение об ошибке и возврат к вызову cin. Как такое сделать?
Iskatel S вне форума Ответить с цитированием
Старый 14.03.2024, 15:14   #12
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 965
По умолчанию

Iskatel S, наличие любой ошибки можно проверить через оператор bool

Код:
if(!std::cin)
{
   //какой-то флаг выставлен
}
Тип объекта определяется программистом. А компилятор ищет подходящую перегрузку оператора >>

проверить ошибку можно сразу после чтения
Код:
if(std::cin>> объект)
{
   //нет ошибки
}
else
{
   //есть ошибка
}
Алексей1153 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Операции ввода-вывода а СИ dannae Помощь студентам 0 19.12.2013 22:11
с++ Операторы ввода,вывода _yaroslav_ Общие вопросы C/C++ 0 29.04.2013 02:26
Написать рекурсивную процедуру для ввода с клавиатуры последовательности чи-сел (конец ввода – 0) и вывода её на экран в обратном netiv Паскаль, Turbo Pascal, PascalABC.NET 1 17.02.2012 18:14
переопределение ввода и вывода в С++ blackbanny Помощь студентам 12 03.05.2010 13:08
система ввода вывода StudentPolitech Общие вопросы C/C++ 3 02.04.2009 22:22