Другие языки программирования и технологии

Как на С++ узнать вышло число за пределы или нет?

#include <iostream>
using namespace std;
int main() {
    cout << "Code?.. ";
    short control;
    cin >> control;
    if (control > SCHAR_MAX || control < SCHAR_MIN) cout << "\aError!";
    else {
        char ch = char(control);
        cout << "Symbol = " << ch << endl << "Code = " << control << endl;
    }
    cin.get(); cin.get();
    return 0;
}
АМ
Алексей Михайлович
53 899
Лучший ответ
Если на экране табличка, где написано что-то про недопустимую операцию - значит вышло.
---
О, чуть-чуть определилось. Итак, определить, вышло ли за пределы - нельзя. А вот выйдет ли при очередной операции - можно, для этого нужно посравнивать результаты операции в более емком типе с соответствующими константами из climits
http://www.cplusplus.com/reference/clibrary/climits/
Зачем тебе это? не трогай эту сложную программу, она в жизни тебе не понадобится
Юрий Жулин
Юрий Жулин
8 505
вопрос несколько не понятно поставлен... но может быть такое условие "если рассматриваемое число больше какого то предела (какого не понятно) то значит число вышло за предел, если же меньше значит ещё в диапазоне".
никак, после 999....будет 0 или минус, для большмх чисел используйте double
если же надо использовать имено int то можно попробовать unsigned long long
ну и всегда можно использовать стандартную библиотеку STL для очень больших чисел

Тогда добавь это число к double и проверь совпадает ли результат, если да то значит не превышает

double a = 5.0000;
int b = 5;
a += 5;
b += 5;
if (a == b)
printf("true");
и да, можно проверить не превышает ли результат максимальное значение, вариантов много, мне кажется
Алексей Михайлович http://www.youtube.com/watch?v=OGsHshpYkiU
Руслан Горивенко так для double и не должно, вы сами должны проверить не превысело ли чесло макс. результат
если double + число > MAX то превышает
если это должна быть всеядная функция, то просто перегрузите ее для интересующих вас типов, или сделайте прием аргумента по указателю и смотрите что за тип с помощю sizeof

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