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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2009, 15:03   #1
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию Проверка типа вводимых данных

Как можно убедиться, что вводимые данные имеют какой-то пределенный тип?

Конекретно, у меня есть cin>>mas[i], мне надо убедиться. что вводится число и не символ/строка_символов.

Я попытался воспользоваться конструкцией
Код:
cin>>str;
mas[i]=atoi(str);
но у нее есть серьезный недостаток, если в строке текст, то она всегда возвращает 0, и я не знаю как отличить текст от числа 0. (по идее мне надо потребовать ввести число, если пользователь попытается вввести текст)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 19.09.2009 в 15:25.
ROD вне форума Ответить с цитированием
Старый 19.09.2009, 19:28   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

ios::operator!

Последний раз редактировалось Somebody; 19.09.2009 в 19:29. Причина: Смайлик, блин, появился
Somebody вне форума Ответить с цитированием
Старый 19.09.2009, 20:05   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Честно говоря вообще не понял, что ios:perator! делает. Тем более, что в приведенном примере программы он даже не используется, хотя я кажется уже придумал свое решение.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 19.09.2009, 20:22   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

ios:perator! Returns true if either one of the error flags (failbit or badbit) is set on the stream. Otherwise it returns false.
То бишь если произошла ошибка ввода, то !std::cin вернёт true.
Код:
#include <iostream>

int main()
{
    int i;
    std::cin >> i;
    if(!std::cin)
        std::cout << "Ошибка ввода.";

    return 0;
}
Ошибка ввода будет выведено в случае, если Вы в переменную типа int попытаетесь ввести что-то не то
netrino вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка вводимых значений nik1905 Microsoft Office Excel 7 26.08.2009 17:06
проверка вводимых значений не производится при удалении Air_kplp Microsoft Office Excel 7 29.05.2009 09:01
Получение типа данных Proof БД в Delphi 2 14.05.2008 20:38
Смена типа данных?? Agrophena Паскаль, Turbo Pascal, PascalABC.NET 4 17.11.2007 16:29
компонент в котором в табличной форме осуществлялся вывод вводимых мной данных Максим-2 Компоненты Delphi 1 22.07.2007 13:31