C++怎么读取文件中的一行数据

XueWang1 2016-06-06 11:53:42
具体问题是这样的:
一个文本文件,内容如下:
10 39 100 4
12 1000 48
31 93 466
现在想要一行一行读取,并且将一行的数据存放到一个数组或者容器中。也就是结果是
a[4]={10,39,100,4}
b[3]={12,1000,48}
c[3]={31,93,466}
当然可以存放到vector<int>中。
请问上述功能如何实现呢?
...全文
1818 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2016-06-06
  • 打赏
  • 举报
回复
用ifstream 配合getline一行行读取数据,然后用vector嵌套vector来存储数据 对于每行的数据都使用strtok来提取出数字

#include <iostream>
#include <fstream>
#include<vector>
using namespace std;

int main()
{
	ifstream input_file("F:\\test.txt");
	char buffer[64] = {0};
	vector<vector<int>> vec_data;
	char *p;
	while(input_file.getline(buffer,64))
     {    
		 vector<int> one_row;
		 p = strtok(buffer, " ");
         while(p)
         {
            int num = atoi(p);                // p就是分割出来的数字的字符串形式,转成整型后就是num
            p = strtok(NULL, " ");
			one_row.push_back(num);
         }
		 vec_data.push_back(one_row);
    }

	//打印vector
	for(int i = 0; i < vec_data.size(); i++)
	{
		for(int j = 0; j < vec_data[i].size(); j++)
			cout << vec_data[i][j] << " ";
		cout << endl;
	}

}
小灸舞 2016-06-06
  • 打赏
  • 举报
回复
#include <iostream> #include <fstream> #include<vector> using namespace std; int main() { ifstream input_file("F:\\test.txt"); char buffer[64] = {0}; vector<vector<int>> vec_data; char *p; while(input_file.getline(buffer,64)) { vector<int> one_row; p = strtok(buffer, " "); while(p) { int num = atoi(p); // p就是分割出来的数字的字符串形式,转成整型后就是num p = strtok(NULL, " "); one_row.push_back(num); } vec_data.push_back(one_row); } //打印vector for(int i = 0; i < vec_data.size(); i++) { for(int j = 0; j < vec_data[i].size(); j++) cout << vec_data[i][j] << " "; cout << endl; } }
paschen 版主 2016-06-06
  • 打赏
  • 举报
回复
getline 函数可以读取一行,读到之后可以用空格分隔得到每一个,然后用atoi将字符串转换成整数getline 函数可以读取一行,读到之后可以用空格分隔得到每一个,然后用atoi将字符串转换成整数
renwotao2009 2016-06-06
  • 打赏
  • 举报
回复
引用 4 楼 renwotao2009 的回复:
getline,gets都可以,格式化读入的话用fscanf("%d %d %d", ...)
int fscanf(FILE*stream, constchar*format, [argument...])
renwotao2009 2016-06-06
  • 打赏
  • 举报
回复
getline,gets都可以,格式化读入的话用fscanf("%d %d %d", ...)

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧