我开始学习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/