对不起我的英语。 我正在尝试做一个简单的例子,在 C++ 中输入错误的数据类型时引发异常,就像在 Python 中一样:
try:
x=float(input("Input a real number:"))
print("Your input:", x)
except ValueError:
print("Error in data type!, need to be a real number, not char ")
可以帮助我吗?预先感谢您。
好吧,我找到了答案。在 C++ 中不需要像在 Python 中那样引发异常。我提出这个解决方案,并不完美,但很接近。我说接近,因为如果你输入 2,35(不是 2.35),输出就是 2,这是不行的。
#include <iostream>
#define max_size 50 // tamanio maximo de caracteres basura
using namespace std;
int main () {
float x;
char basura[max_size];
cin>>x;
while (!(cin.good()))
{
cout<<"Ud. NO ingresó numeros!!. Reingrese: ";
cin.clear();// reseteo el bit de error.
cin.getline(basura,max_size);//leo/limpio el contenido de buffer max_size de caracteres
cin>>x;
}
cout<<"Ud. ingreso el siguiente numero: "<<x;
return 0;
}