入力の検証を学習しましたが、問題が発生しました。私は、ユーザーが数字(スイッチのケースに含まれているもの)と文字列を入力すると、プログラムがクラッシュします。何が変更されるべきかについてのヒントは、検証がすべてに作用するのですか?番号を入力する場合数値と文字列での入力の検証
cin >> choice
を使用して
int menu(double pi) //menu for choosing a shape
{
int choice = 0;
cout << "Please select what you wish to calculate:\n\n1 - Area of a Circle\n\n2 - Circumference of a Circle\n\n3 - Area of a Rectangle\n\n4 - Area of a Triangle\n\n5 - Volume of a Cuboid\n\n ";
while (!(cin >> choice))
{
cout << "Invalid input, please enter a number of 1-5\n\n";
cin.clear();
cin.ignore(100, '\n');
}
system("CLS");
switch (choice) //switch case for each shape
{
case 1:
circleArea(pi);
break;
case 2:
circleCircum(pi);
break;
case 3:
rectanArea();
break;
case 4:
triangArea();
break;
case 5:
cubVol();
break;
default:
cout << "Invalid input! Please try again.\n\n";
break;
}
return 0;
}
一般的には、防弾コードが必要な場合は、入力を文字列として読み取って解析し、必要なものに変換する必要があります。 – NathanOliver
ええと、私はあなたが何を意味するのかは分かりませんが、それは問題ではない場合、いくつかのサンプルコードを提供してもよろしいですか?私はまだちょっとプログラミングの騒ぎで、9月に始まった。 – PinkieBarto