Есть следующий код:
#include <iostream>
#include <stdexcept>
#include <string>
#include <vector>
using std::cin; using std::cout; using std::endl; using std::vector;
int main()
{
vector<int> input;
try
{
int i;
while (cin >> i) input.push_back(i);
for (int i = 0; i <= input.size(); ++i)
{
cout << "v [" << i << "] - " << input << "\n";
}
cout << endl;
}
catch (std:ut_of_range) {
cout << "Index out of range!\n";
return 1;
}
return 0;
}
В цикле for() нарочно допущена ошибка в диапазоне вывода элементов массива.
Вот только проблема в том, что она не перехватывается catch'ем.
Её "ловит" компиллятор Visual Studio, но при его отключении сама функция catch() не подаёт признаков жизни.
ШТО ДЕЛОТЬ????
Заранее спасибо!
#include <iostream>
#include <stdexcept>
#include <string>
#include <vector>
using std::cin; using std::cout; using std::endl; using std::vector;
int main()
{
vector<int> input;
try
{
int i;
while (cin >> i) input.push_back(i);
for (int i = 0; i <= input.size(); ++i)
{
cout << "v [" << i << "] - " << input << "\n";
}
cout << endl;
}
catch (std:ut_of_range) {
cout << "Index out of range!\n";
return 1;
}
return 0;
}
В цикле for() нарочно допущена ошибка в диапазоне вывода элементов массива.
Вот только проблема в том, что она не перехватывается catch'ем.
Её "ловит" компиллятор Visual Studio, но при его отключении сама функция catch() не подаёт признаков жизни.
ШТО ДЕЛОТЬ????
Заранее спасибо!