Demigodd
@Demigodd

Как проверить вывод на число?

#include <iostream>

int main() {
    int num = 0;

    while(num != -1) {
        std::cout << "Enter the number to push: ";
        std::cin >> num;
    }

    return 0;
}


Есть вот такой код, как проверить вывод на число, если выведено не число то выйти из цикла ?
Просто если вывести символ то цикл попадет в БЕСКОНЕЧНОСТЬ..
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
@Ariox41
Вывод - это вывод из программы в поток (cout), ввод - это ввод из потока в программу (cin), это можно понять по названиям.

Один из вариантов - считывать не чисто, а строку, а затем уже преобразовать строку в чисто другими функциями.
Или можно воспользоваться интерфейсом обработки ошибок потоков:

#include <iostream>
#include <limits>

int main() {
    int num = 0;

    while(num != -1) {
        std::cout << "Enter the number to push: ";
        std::cin >> num;
        if(std::cin.fail()){
            std::cout  << "It is not number" << std::endl;
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        } else{
            std::cout << "num = " << num << std::endl;
        }
    }
    
    return 0;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы