需要一个简单的示例,如何在 C++ 中捕获数据类型错误

问题描述 投票:0回答:1

对不起我的英语。 我正在尝试做一个简单的例子,在 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 ")

可以帮助我吗?预先感谢您。

exception types error-handling
1个回答
0
投票

好吧,我找到了答案。在 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;
}
© www.soinside.com 2019 - 2024. All rights reserved.