просто пытается сравнить два пользовательских вектора, чтобы увидеть, равны ли они, текущий код:
vector<int> ivec1, ivec2; //vectors, uninitialized
int temp1;
cout << "Enter integers to be stored in ivec1." << endl;
while(cin >> temp1) //takes input from user and creates new element in the vector to store it
{
ivec1.push_back(temp1);
}
int temp2;
cout << "Enter integers to be stored in ivec2." << endl;
while(cin >> temp2) //same as above with different vector
{
ivec2.push_back(temp2);
}
if(ivec1 == ivec2)
cout << "ivec1 and ivec2 are equal!" << endl;
else
cout << "ivec1 and ivec2 are NOT equal!" << endl;
Пока что это позволяет мне назначать значения ivec1 просто отлично, но когда я выхожу из цикла while, вводя букву для сбоя cin, он пропускает второй блок while. Из любопытства я попытался вставить другие операторы cin после первого цикла while, и он также игнорирует их все.
Вызывает ли принудительный сбой cin программу игнорировать все остальные вызовы или что-то в этом роде, или есть другая проблема? Если так, как я могу заставить эту программу делать то, что я хочу?
скриншот для вашего удовольствия от просмотра:
http://img695.imageshack.us/img695/2677/cinfailure.png
* PS. имея temp1 и temp2, я просто пытался понять, вызывает ли проблема одно и то же значение int для обоих циклов присваивания, в любом случае, я решил, что оставлю это там