所以我剛剛學會了輸入驗證,但是我遇到了一個問題。我強制用戶輸入一個數字而不是一個可用的字符串,但是如果用戶輸入一個數字(包含在開關盒中的數字)和一個字符串,那麼程序會崩潰。有什麼提示要改變什麼,以便確認對所有東西都有效?輸入驗證w /數字和字符串
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