1. cin的参数不匹配时,会返回false。使用clear()成员函数重置错误位,sync()成员函数清空输入流。
1 #include<iostream> 2 int chazhao(int* S, int low, int high, int key); 3 void main() 4 { 5 int S[6] = {1,2,3,4,5,6}; 6 int low = 0; 7 int high = 5; 8 int key = 3; 9 10 int a; 11 char str2[20]; 12 std::cin >> a; 13 // std::cin.getline(str,20); 14 std::cout << "------------ "; 15 std::cout << a << std::endl; 16 if(std::cin.fail() == 1) 17 { 18 std::cout << "fail "; 19 std::cin.clear();//重置错误位 20 std::cin.sync();//清空数据流 21 } 22 23 std::cout << std::cin.fail() << std::endl; 24 std::cin.getline(str2, 20); 25 std::cout << str2 << std::endl;