2つのユーザー定義ベクトルを比較して、それらが等しいかどうか、現在のコードを確認しようとするだけです。
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に値をうまく割り当てることができますが、文字を入力してcinを失敗させることで、whileループを終了すると、2番目のwhileブロックがスキップされます。好奇心から、最初のwhileループの後に他のcinステートメントを入れてみましたが、それらもすべて無視されます。
cinを強制的に失敗させると、プログラムはそれまたは何かに対する他のすべての呼び出しを無視しますか、それとも別の問題がありますか?もしそうなら、どうすればこのプログラムに私が望むことをさせることができますか?
閲覧を楽しむためのスクリーンショット:http: //img695.imageshack.us/img695/2677/cinfailure.png
*PS。temp1とtemp2があるのは、両方の割り当てループに同じintを使用することが問題の原因であるかどうかを判断しようとしただけでした。とにかく、そのままにしておくと思いました。