多くの人にとって非常に単純かもしれない質問がありますが、私の質問に対する答えは見つかりませんでした.
以下のプログラムが正常に動作しています。このコードは、数値を浮動小数点数と整数に変換します。
5.4 を入力したとしましょう。プログラムは double の場合は 5.4、integer の場合は 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;
}
}