如何读取txt文件到矢量和计数文件
How to read txt file into vector and cout the file?
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<int> temp;
ifstream infile;
infile.open("numbers");
if (infile.fail())
{
cout << "Could not open file numbers." << "n";
return 1;
}
int data;
infile >> data;
while (!infile.eof()) {
temp.push_back(data);
infile >> data;
}
cout << data << " " << endl;
}
我只是想用一个向量从文本文件"数字"中计算出所有的数字。
15
10
32
24
50
60
25
我的经验几乎是零,一些关于为什么不能打开的指导将非常有帮助。
你的代码不工作,因为你没有尝试从矢量打印任何东西?
如何打印矢量?
首先你必须理解如何不打印一个向量。代码的最后一行,特别是这一行:
cout << data << " " << endl;
只从文本文件中打印出最后一个整数。在执行输入的循环中,infile >> data
覆盖data
之前的每个值,并将其赋值给当前从文件中读取的值。结果是,当循环结束时,data
将等于最后一次读取的值,特别是25
查看您的文件。
operator<<()
没有重载,这将允许你做类似cout << temp
的事情,尽管你可以自己实现一个。有几种方法可以打印向量,最简单的是一个简单的循环:
for (unsigned i = 0; i < temp.size(); ++i)
std::cout << temp[i] << " ";
附加:打印所有整数的更快的方法是从循环内部打印data
。还有@KerrekSB的答案
你的代码是好的,但你打印错误的东西。将main的底部改为
int data;
while (infile >> data) {
temp.push_back(data);
}
for( vector<int>::iterator i = temp.begin(); i != temp.end(); i++) {
cout << *i << endl;
}
试试这个:
#include <fstream>
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
std::ifstream infile("data.txt");
if (!infile) { /* error opening file */ }
for (int n : std::vector<int>(std::istream_iterator<int>(infile), {}))
{
std::cout << n << 'n';
}
}
当然,如果你只想处理数字,你不需要向量:
for (std::istream_iterator<int> it(infile), end; it != end; ++it)
{
std::cout << *it << 'n';
}
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 一种在C++中读取TXT配置文件的简单方法
- 无法打开.txt文件
- 如何使用CLion在Mac上创建一个新的.txt文件
- 我可以读取静态对象中的文件.txt吗?C++
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 具有文件.txt的 C++ 中的设置
- 如何在 CMakeList 中包含 h/hpp 头文件.txt而不是 cpp 或其他 hpp 文件
- 使用函数读取文件.txt中的矩阵
- 任何人都知道如何解决尝试将从MySQL数据库返回的行打印到文本文件(.txt)中的C++
- 读取文件.txt C
- 为什么我的方法不从文件.txt中读取float类型
- 如何读取名称(仅文件.txt)作为参数传递的文件(在任何目录中)?C++
- 读取文件".txt"并将每行的数据分配给循环列表中的新节点C++
- 如何用C++将字符串文件Txt解析成数组
- 如何在c++中读取和编辑文件txt
- 从文件.txt读取字符串数组并使用它来玩康威的生命游戏
- 导入文件txt时出错
- 如何仅读取文件.txt中的数字