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

проверка введенного значения - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Yaroslav7
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 6
24.04.2010, 21:35     проверка введенного значения #1
Подскажите пожалуйста, хочу реализовать проверку на введенное значение, заметил если получаемой переменной с консоли ставить тип int то при введении буквы или запятой идет бесконечный цикл, поэтому использую char, но тогда появляется вопрос как преобразовать char в int

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() 
{ 
cout << endl << "Введите номер правильного ответа (1 или 2 или 3) и нажмите ENTER : ";
char otvs ; cin >> otvs; 
 
for ( ; ; )//бесконечный цикл, который прерывается при правильном выборе ответа
    {
        if ((otvs=='1')||(otvs=='2')||(otvs=='3'))
        break;
        else 
        {cout << "\n !!!ERROOR!!! не тот вариант ответа, должно быть 1 или 2 или 3 \n" << "введите правильный вариант ответа на вопрос : ";
        cin >> otvs;}   
    }
 
int otv;
otv = atoi(otvs);
    
}
Пытаюсь испльзовать atoi но выдает ошибку: error C2664: atoi: невозможно преобразовать параметр 1 из 'char' в 'const char *'
1> Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.04.2010, 21:46     проверка введенного значения #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main() 
{ 
cout << endl << "Введите номер правильного ответа (1 или 2 или 3) и нажмите ENTER : ";
char otvs ; cin >> otvs; 
 
for ( ; ; )//бесконечный цикл, который прерывается при правильном выборе ответа
        {
                if (otvs>='1' && otvs<='3')
                break;
                else 
                {cout << "\n !!!ERROOR!!! не тот вариант ответа, должно быть 1 или 2 или 3 \n" << "введите правильный вариант ответа на вопрос : ";
                cin >> otvs;}   
        }
 
int otv=otvs-'0';// вот здесь в otv цифра 1-3, которую Вы вводили
return 0;        
}
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
24.04.2010, 21:51     проверка введенного значения #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
cout << endl << "Введите номер правильного ответа (1 или 2 или 3) и нажмите ENTER : ";
int otvs ;
cin >> otvs;
 
for ( ; ; )//бесконечный цикл, который прерывается при правильном выборе ответа
        {
            if (!cin.good()){
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(),'\n');
            }
                if ((otvs==1)||(otvs==2)||(otvs==3))
                break;
                else
                {cout << "\n !!!ERROOR!!! не тот вариант ответа, должно быть 1 или 2 или 3 \n" << "введите правильный вариант ответа на вопрос : ";
                cin >> otvs;}
        }
 
cout<< otvs;
 
 
}
Yaroslav7
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 6
25.04.2010, 06:59  [ТС]     проверка введенного значения #4
Спасибо большое,
попробую!
Yandex
Объявления
25.04.2010, 06:59     проверка введенного значения
Ответ Создать тему
Опции темы

Текущее время: 23:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru