割り当てには、すべての繰り返しブロックを関数に置き換える必要がありますが、検証ループでこれを行う方法を理解できません。 コード内のループが入力した番号が0と500の間であることを確認しながら、私は現在、私はこれらのコードの行(またはそれらのほとんどを)交換する機能を設定したいと思います使用しています:C++ユーザー入力の実数を別の関数で検証する方法は?
while (inMoney < 0 || inMoney > 500)
{
cout << "ERROR: invalid conversion value of '" << inMoney
<< "'. " << endl;
cout << "Enter a value to convert between 0 and 500: ";
cin >> inMoney;
}
double validate()
{
double inMoney;
cout << "Enter a value to convert between 0 and 500: ";
cin >> inMoney;
while (inMoney < 0 || inMoney > 500)
{
cout << "ERROR: invalid conversion value of '" << inMoney
<< "'. " << endl;
cout << "Enter a value to convert between 0 and 500: ";
cin >> inMoney;
}
return(inMoney);
}
と私はこれを行うことによって()int型の主以内にそれを呼び出すようにしようとしている:
私は現在、私の機能のためにこれを持っている
私はについて何かを欠けているように私には感じswitch (code)
{
case 'a':
cout << "\nUS Dollar -> British Pound" << endl;
validate();
outMoney = inMoney * USDtoPND;
cout << "$" << inMoney << " equals "
<< (char)PND_SYMBOL << outMoney << endl;
break;
関数が呼び出される方法、および/またはこの種の検証を実際にどのように構築するかを示します。私は、私の検証機能の外でcin文を残す必要がありますか? validate関数はmain関数の後に来る必要がありますか?現在コンパイルされていますが、aを入力してvalidate()を実行すると、inMoneyが適切に初期化されていないことを示すランタイムエラーが発生します。
、簿記はなりますあなたに感謝してください。 – user0042