这是我写的代码。你看到有简单的模板PRINT功能.. 它真的适用于INT类型向量,但是DOUBLE却没有 有什么问题?
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
void print (vector<T> &v) {
for (int i=0; i<v.size(); i++)
cout<<v[i]<<'\t';
}
int main() {
vector<int> vec;
int a;
while (cin>>a)
vec.push_back(a);
print(vec);
vector<double> vec1;
double b;
while (cin>>b)
vec1.push_back(b);
print(vec1);
return 0;
system("pause");
}
我已经使用定义的while循环测试了它...就像while(some_integer&lt; 10)并且它可以工作,但是如果没有定义的值应该运行多少次它就无法工作 你可以帮我解决一下吗?无法弄清楚
答案 0 :(得分:4)
你的循环有效如下:
// Continue reading things while cin is in a good state and the read succeeds (int datatype)
while (cin >> a) // ...
要退出该循环,您会读取非整数的内容(例如字母或。),并且cin将进入失败状态。
当它处于失败状态时,之后的所有读取都将无声地失败。
在您尝试阅读之前的任何内容之前,您需要cin.clear()
清除失败状态!