Я пытаюсь поймать неверные входы без tryCatch-Block. Всякий раз, когда пользователь вводит неправильное значение (например, «hh» или -5), моя программа должна запросить еще раз, пока пользователь не установит правильное значение. После этого продолжайте, пока массив не будет заполнен.C++ catch ложный ввод без блока tryCatch
int main() {
double array[6];
string str_array[7];
str_array[0] = "stringA";
str_array[1] = "stringB";
str_array[2] = "stringC";
str_array[3] = "StringD";
str_array[4] = "StringE";
str_array[5] = "StringF";
str_array[6] = "StringG";
double value;
for (int i = 0; i < 7; i++) {
bool exit = false;
while (!exit) {
cout << str_array[i] << ":";
if (cin >> value&& value> 0) {
array[i] = value;
cout << array[i] << endl;
exit = true;
} else {
cerr << "incorrect input" << endl;
cin.clear();
}
}
}
}
И ваш вопрос? – NathanOliver
Off topic: существует гораздо менее болезненный способ настроить этот строковый массив: 'string str_array [7] = {" stringA "," stringB ", ...}', и вы можете использовать 'std :: vector 'почти так же. –
user4581301
Off topic: 'i <7' позволяет' array [i] 'достигать' array [6] ', который выходит за рамки. – user4581301