练习5.17
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> num1, num2;
int a = 0,b=0;
cout << "请输入num1的元素:" << endl;
while (cin >> a)
num1.push_back(a);
cin.clear();
cin.sync();
cout << "请输入num2的元素:" << endl;
while (cin >> b)
num2.push_back(b);
auto num_min = (num1.size() > num2.size()) ? num2 : num1;
auto num_max = (num1.size() < num2.size()) ? num2 : num1;//注意,vector是可以拷贝初始化的,这与数组不同。
auto i = num_max.cbegin(), j = num_min.cbegin();
while (j != num_min.cend() && (*i == *j))
{
++i;
++j;
}
if (j == num_min.cend())
cout << "他们中较短者是较长者前缀" << endl;
system("pause");
return 0;
}

在C++程序中,当使用两次cin>>时,遇到^Z(EOF)输入,会导致第二次cin失败。输入1 2 3 4 ^Z回车后,程序不再读取后续输入。这是因为在^Z后,输入流被视为结束,后续cin不会读取数据。解决方法是检查输入流状态并适当地清除错误。
最低0.47元/天 解锁文章
1498

被折叠的 条评论
为什么被折叠?



