gpt4 book ai didi

c++ - while(cin) 循环 DOUBLE 显示

转载 作者:行者123 更新时间:2023-11-27 23:15:41 25 4
gpt4 key购买 nike

这是我编写的代码。如您所见,有一个简单的模板 PRINT 函数。它确实适用于 INT 类型的 vector ,但不适用于 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<10) 并且它可以工作,但是如果没有定义它应该运行多少次的值它就不能工作你能帮我解决一下吗?想不通

最佳答案

你的有效循环如下:

// Continue reading things while cin is in a good state and the read succeeds (int datatype)
while (cin >> a) // ...

要退出该循环,您会读取一些非整数(例如字母或 .),并且 cin 将进入失败状态。

当它处于失败状态时,之后的所有读取都将静默失败。

您需要一个 cin.clear() 来清除失败状态,然后再尝试读取它之后的任何内容!

关于c++ - while(cin) 循环 DOUBLE 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16551832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com