从文件读取时未将值推回矢量
Values not being pushed back into vector while reading from a file
我的.txt
文件具有如下值:
36.68
36.64
36.66
36.66
我使用以下代码读取值:
ifstream ifs;
ifs.open("F:/test_files/IBM_prices.txt");
if (!ifs) { cerr << "cannot open prices file"; };
double price;
while (ifs >> price) {
cout << price << endl; //for debugging
vector <double>v;
v.push_back(price);
cout << "vector size is" << v.size() << endl; //for debugging
}
当我运行代码时,矢量一直显示大小为1
我错过了什么吗?
每次迭代都有一个全新的v
;它是在循环块中定义的本地对象。
将定义移出循环。
vector<double> v;
while (ifs >> price) {
cout << price << endl; //for debugging
v.push_back(price);
cout << "vector size is" << v.size() << endl; //for debugging
}
您的vector <double>v
是在while
循环中定义的,因此在每次迭代中都会定义,并且其大小始终为 1。在while
循环之外定义它,您将拥有实际大小。
您可以将cout
放在while
内,您可以看到vector
的大小如何随着每个push_back
而增加。
你必须在 while 的 {} 边界之外声明向量。 当你像你写的那样做时,你会为循环的每次迭代创建新的向量,它接收一个元素并在最后死亡。
vector <double>v;
while (ifs >> price) {...
相关文章:
- 正在将csv文件读取为双精度矢量
- 将从格式化文本文件读取的文本数据存储到链表
- C++ 读取文件读取文件不正确
- 使用对象文件读取三角形数据网格
- 如何减慢从 BVH 文件读取的 opengl 动画?
- 从文件读取,并写入函数C++中的数组
- 从对象C++中的文件读取内容时出现分段错误
- 从文件读取并通过矢量输出到控制台
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将文本文件读取到二维数组中并以 c++ 打印
- 简化文件读取的函数
- 如何将逗号分隔的文件读取为 2D int 数组?
- 在 c++ 中将数据从文件读取到队列中
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- 文件读取C++包括空格键
- 从文件读取时未将值推回矢量
- 从文件 C++ 读取时的无限循环
- 从同一文件读取和写入?
- 从.txt文件读取到C++中的双精度向量