c++使用vector从文本文件中读取和写入数字
c++ read and write numeric numbers from text file using vector
我从coursera学习一门课程。在其中一节课中,有一个代码应该使用矢量从文本文件中读取和写入数字。这是代码:
#include <iostream>
#include <iterator>
#include <fstream>
#include <vector>
#include "Student.h"
//#include ""
using namespace std;
int main()
{
/*cout << "Hello School!" << endl;
Student sarit_student("Sarit Rotshild",12345);*/
ifstream data_file("../../sarit/data.text");
istream_iterator<int> start(data_file), end;
vector<int> data(start, end);
int sum=0;
for(auto it=start; it!=end; ++it)
{
sum+= *it;
}
cout<<"sum = "<< sum<<endl;
cout<<"avg is : "<< 1.0* sum/data.size()<<endl;
return 0;235
}
输入(在文本文件中)是12 15 1823235然而,我得到的结果并不正确--->总和=12平均值为:2.4
std::istream_iterators
不同于"常规"迭代器。流迭代器是单程的。同一迭代器不能使用两次,因为每次增量都从流中读取数据,从流中读出的数据也会从流中消失。但这正是你想要做的:
vector<int> data(start, end);
for(auto it=start; it!=end; ++it)
这里迭代器start
被使用了两次——第一次是填充向量,第二次是在流上迭代。
要解决问题,请迭代循环中的向量,而不是(用完的)流。
相关文章:
- 如何从保存在 Java 中C++的字节数组中读取数字?
- 从文本文件中的每一行读取数字,并计算数字重复的次数
- 如何从文件中读取数字并在数组中使用它们?
- 使用模板化函数从CSV文件中读取数字
- 根据数字在 c++ 中作为矩阵的位置从文件中读取数字
- 如何从文件中读取数字序列?
- 如何允许我的程序成功读取数字包含的文件
- 如何仅从C 中的文本文件中读取数字
- 从没有分隔符 C++ 的文件读取数字出现次数
- 读取数字并转换为单词
- 从文件,特定行中仅读取数字
- 从TextFile中读取数字,并检查它们是否在范围内
- C 从文本文件中读取数字,忽略注释
- 从文件读取数字列表到动态数组
- 我正在尝试从文件中读取数字
- 从txt文件中读取数字,添加一些数字,然后在c ++中将其重写为其他文件
- C++如何从文件中读取数字并将其分配到数组中的相应位置
- 读取数字的文本文件,并存储在C++的整数数组中
- 从文件中读取数字
- 从文本中读取数字并输出平均值