Цитата:
эм.. а трассировать не пробовали?
Увы, у меня нет опыта работы с дебагером. Я просто считаю, что на этапе обучения полезнее прокручивать работу кода в уме.
Цитата:
Не знаю, что и сказать. У меня остались только предположения о глюках компилятора, или вредительстве с макросами.
Проблема была на GCC 4.4.3. Может быть проблема в том, что я сам собирал его(Этой же версией компилятора). На Microsoft Visual такой проблемы нет. И на MinGW тоже все работает. Обидно столько времени убил на поиск ошибки.
Около полугода назад тоже была похожая проблема на MinGW. В цикле не инкрементировалась переменная. Я тогда попробовал Microsoft Visual и с ним все заработало. Но там может быть моя ошибка была.
Цитата:
Если есть возможность, надо дать посмотреть весь код целиком. Глюки обычно там, где вы и предположить не можете. Еще скажите версию и название компилятора.
Я перед тем, как создать здесь тему отделил проблемный код.
UPD: Да еще небольшой вопрос.
Допустим у нас есть такой код:
Код:
int main()
{
try {
int n;
vector<int> v;
while(cin >> buf)
{
v.push_back(buf);
}
} catch(exception& e){
cerr << "Error: " << e.what() << '\n';
return -1;
}
}
Мы вводим два числа: 52 324
А потом вводим, какой то символ: '#'.
Должно ли сработать исключение? В книге, которую я сейчас читаю, написано, что да, но воспроизвести у меня не получается. Более того, если ввести какой либо символ, то дальше инструкции cin вообще не работают.