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

Текст с консоли в int - C++

Восстановить пароль Регистрация
 
Setsuna
 Аватар для Setsuna
9 / 9 / 0
Регистрация: 15.06.2010
Сообщений: 126
01.04.2013, 17:50     Текст с консоли в int #1
C++
1
2
3
4
5
6
7
8
while(true)
    {
        system("cls");
        cout << "Введите номер комманды:\n";
        int номер_комманды = -1;
        cin >> номер_комманды;
        if (номер_комманды == 1) break;
    }
Почему когда я ввожу буквы в консоль, он просто пролетает? И начинает заного крутить цикл и нифнига не делает. Или как можно поставить запрет на все кроме цифр?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 17:50     Текст с консоли в int
Посмотрите здесь:

Выделять текст в консоли? C++
Цветной текст в консоли C++
C++ Русский текст в консоли
C++ Текст в консоли
C++ Русский текст в консоли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11847 / 6826 / 771
Регистрация: 27.09.2012
Сообщений: 16,929
Записей в блоге: 2
Завершенные тесты: 1
01.04.2013, 18:02     Текст с консоли в int #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
int InputSize(const int min,const int max){
    int x;
    std::cout<<"Please, enter size ["<<min<<","<<max<<"] ->";
    bool ErrorFlag;
    do{
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin>>x;
        ErrorFlag=!std::cin.good() || x>max || x<min;
        if(ErrorFlag){
            std::cout<<"Error. Enter size ["<<min<<","<<max<<"] ->"<<std::endl;
        }
    }while(ErrorFlag);
    std::cin.ignore(std::cin.rdbuf()->in_avail());
    return x;
}
int main(){
    InputSize(1,9);
}
Setsuna
 Аватар для Setsuna
9 / 9 / 0
Регистрация: 15.06.2010
Сообщений: 126
02.04.2013, 18:58  [ТС]     Текст с консоли в int #3
Спасибо Croessmah. Но а вообще, почему так происходит? Почему он так выпадает и начинает тупить?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11847 / 6826 / 771
Регистрация: 27.09.2012
Сообщений: 16,929
Записей в блоге: 2
Завершенные тесты: 1
02.04.2013, 20:53     Текст с консоли в int #4
Цитата Сообщение от Setsuna Посмотреть сообщение
Почему он так выпадает и начинает тупить?
В потоке остается символ конца строки.
Yandex
Объявления
02.04.2013, 20:53     Текст с консоли в int
Ответ Создать тему
Опции темы

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