我开始学习C++编程,并对错误处理有疑问。

我编写了一个从函数ax+b=0计算x的代码(因此我必须将-b除以a)。用户通过cin >>输入值

如果我除以0,我得到-int作为我的输出。是否可以捕获错误(例如,使用if语句)?

我知道除以零是不可能的,而且我也知道,如果不检查用户的输入(例如if ((a != 0)){calculate}),这对于程序来说不是一个好习惯。问题是我想知道如何/如何捕获此错误;-)它是否取决于硬件,操作系统或编译器?

我的老师无法帮助我;)

顺便说一句。我在Mac OS X 10.8.2上将Eclipse Juno IDE用于C / C++

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    float a, b, x;   //float da Kommazahlen erwartet werden
    cout << "ax + b = 0" << '\n'<< endl;
    cout << "Bitte geben Sie einen Wert für a ein:" << endl;
    cin >> a;
    cout << "Bitte geben Sie einen Wert für b ein:" << endl;
    cin >> b;

    x = -b/a;
    cout << "Ergebnis:" << x << endl;

    if (x == #INF )
    {
        cout << "Du bist a Volldepp - durch Null kann man nicht teilen!" << endl;
    }

    return 0;
}

最佳答案

是:

在C++ 03中

 if ((x == +std::numeric_limits<float>::infinity()) ||
     (x == -std::numeric_limits<float>::infinity())
    )

在C++ 11中
 if (std::isinf(x))

关于c++ - C++除以零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15277129/

10-12 17:28