c++中的异常处理我如何在这里实现它



我刚刚在c++中创建了一个关于添加矩阵的程序,但我只是不知道如何异常处理从1到10选择数字的部分,以便用户只能选择从1到10的数字,如果他输入错误,则显示错误消息并被要求再次输入数字

#include <iostream>
using namespace std;
int r, c, a[10][10], b[10][10], sum[10][10], i, j;
void matrix(string s) {
cout << "Enter number of rows (between 1 and 10): ";
cin >> r;
cout << "Enter number of columns (between 1 and 10): ";
cin >> c;

}
void storeValues(string s) {
cout << endl << "Enter elements of " << s <<  " matrix:" << " " << endl;
for (i = 0; i < r; ++i) 
for (j = 0; j < c; ++j)
{
cout << "Enter element " << i + 1 << j + 1 << " : ";

if (s == "1st") {
cin >> a[i][j];

}
else
cin >> b[i][j];
}


}
void addMatrices() {
for (i = 0; i < r; ++i)
for (j = 0; j < c; ++j)
sum[i][j] = a[i][j] + b[i][j];
}
void displayResult() {
cout << endl << "Sum of two matrix is: " << endl;
for (i = 0; i < r; ++i) 
for (j = 0; j < c; ++j) 
{
cout << sum[i][j] << " ";
if (j == c - 1)
cout << endl;
}

}
int main()
{
string s = "1st";
matrix(s);
storeValues(s);
s = "2nd";
storeValues(s);
addMatrices();
displayResult();
return 0;
}

您可以轻松地为您创建一个处理有界输入的函数,例如:

int bounded_input(int lower, int upper, std::string message) {
int r;
bool valid = false;
cout << message << " (between " << lower << " and " << upper << "): ";

do {
cin >> r; // NOTE: You will want to check for invalid input like "three" ...
if (r < lower || r > upper) {
cout << "Invalid, please enter between " << lower << " and " << upper << ":";
} else {
valid = true;
}
} while (!valid);
return r;
}

那么你可以简单地对所有的边界调用这个:

int row_bound = bounded_input(1, 10, "Enter row bounds");

最新更新