我有一个对你们中的许多人来说可能非常简单的问题,但是我还没有找到我的问题的答案。
我有下面的程序可以正常工作。此代码将数字转换为浮点数和整数。
假设你输入了 5.4,程序会给你 5.4 的双精度和 5 的整数。
现在我需要在我的程序中添加一个 throw catch 语句,以防用户输入文本而不是数字(“如果转换失败,抛出异常并允许用户重新输入值。”)。
这是我需要做的伪代码。
try {
if(num ==character)
throw;
cout << "\n The number entered " << num << "invalid, please enter again";
}
catch
{
}
我实现了这样的东西,但是它没有用。我设置了“a”变量字符,认为用户必须输入文本才能获得该消息。但是它不起作用并给出了一些错误。
try
{
char a;
if (num == a)
throw num;
}
catch(int e)
{
cout << "A number of " << a << " is invalid." << endl;
cout << "Please re-enter a number: ";
cin << num
}
我对这种“尝试、投掷、接球”术语非常陌生。如果你能帮我解决这个问题,我会很高兴,谢谢。
#include <C:\\CSIS1600\MyCppUtils.cpp>
#include <iostream>
#include <string>
using namespace myNameSpace;
int main()
{
runner("is running");
cout << "Enter a number : ";
string num;
getline(cin, num);
cout<< "double " << getValidDouble(num) << endl;
cout<< "integer " << getValidInt(num) << endl;
system("pause");
return 0;
}
#include<iostream>
#include<string>
using namespace std;
namespace myNameSpace
{
string num;
void runner(string str)
{
cout <<"runner-3() is running.."<<endl;
}
int getValidInt(string n)
{
int valueint;
valueint=atoi(n.c_str());
return valueint;
}
double getValidDouble(string n )
{
double valuedouble;
valuedouble = atof(n.c_str());
return valuedouble;
}
}