[开发语言][C++]:调用IO库,读写CSV/txt等文件

C/C++:调用IO库,读写CSV/txt等文件

读写csv或者txt文件

C++不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO(Input,Output)。
支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件,控制台窗口等,比如我们敲得第一行代码:

#include <iostream>

std::cout << "Hello,C++!" << std::endl;

就是我们IO操作中的O,同样对于文件的操作也是如此。

csv文件其实就是文本文件,只是每行字段用逗号分隔。

头文件fstream中定义了三种类型来支持文件的IO:
ifstream: 从一个给定文件中读取数据。
ofstream: 向一个给定文件中写入数据。
fstream: 可以读写文件数据。

操作
fstream fstrm;创建一个文件输入流
fstream fstrm(s, mode);以mode方式打开文件s
fstrm.open(s)打开文件s
fstrm.close()关闭文件
fstream.is_open()判断文件是否是打开状态
mode操作
in以读的方式打开
out以写的方式打开
app每次写操作前均定位到文件末尾
ate打开文件后立即定位到文件末尾
trunc截断文件
binary以二进制的形式进行IO
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <sstream>
 
using namespace std;
 
 
int main()
{
	// 写文件
	ofstream outFile;
	outFile.open("data.csv", ofstream::out|std::ofstream:); // 打开模式可省略,若需要append 加参数ofstream::out(c++ primer)
	outFile << "name" << ',' << "age" << ',' << "hobby" << endl;
	outFile << "Mike" << ',' << 18 << ',' << "paiting" << endl;
	outFile << "Tom" << ',' << 25 << ',' << "football" << endl;
	outFile << "Jack" << ',' << 21 << ',' << "music" << endl;
	outFile.close();
 
	// 读文件
	ifstream inFile("data.csv", ios::in);
	string lineStr;
	vector<vector<string>> strArray;
	while (getline(inFile, lineStr))
	{
		// 打印整行字符串
		cout << lineStr << endl;
		// 存成二维表结构
		stringstream ss(lineStr);
		string str;
		vector<string> lineArray;
		// 按照逗号分隔
		while (getline(ss, str, ','))
			lineArray.push_back(str);
		strArray.push_back(lineArray);
	}
	
	getchar();
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值