C++对csv文件操作(读、写、追加)

这篇具有很好参考价值的文章主要介绍了C++对csv文件操作(读、写、追加)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.读csv文件

2.写入csv文件

3.向csv文件中追加内容

4.具体使用

4.1读入csv文件

4.2写入csv文件

4.3向csv文件追加

内容参考


使用说明:csv文件按照","进行分隔。因此每个内容中需避免出现","

1.读csv文件

c++通过文件读入方式打开文件。即通过ifstream类进行打开文件。


string fname = "test.csv";
//以读入方式打开文件
ifstream csv_data(fname, ios::in);

if (!csv_data.is_open())
{
	cout << "Error: opening file fail" << endl;
	exit(1);
}
else {
	string line;

	vector<string> words; //声明一个字符串向量
	string word;
	// ------------读取数据-----------------
	// 读取标题行
	getline(csv_data, line);


	istringstream sin;
	// 按行读取数据
	while (getline(csv_data, line))
	{
		// 清空vector及字符串流,只存当前行的数据
		words.clear();
		sin.clear();

		sin.str(line);
		//将字符串流sin中的字符读到字符串数组words中,以逗号为分隔符
		while (getline(sin, word, ','))
		{
			cout << word << endl;
			words.push_back(word); //将每一格中的数据逐个push
		}
	}
	csv_data.close();
}

2.写入csv文件

c++通过文件写入方式打开文件进行写入。即通过ofstream类进行写入,并在打开文件中指明ios::out。

说明:默认通过iso::out方式进行写入,当文件不存在时会进行创建

string fname = "test.csv";

ofstream outFile(fname, ios::out);

// 写入标题行
outFile << "name" << ','
<< "income" << ','
<< "expenditure" << ','
<< "addr" << endl;

// ********写入两行数据*********

outFile << "zhangsan" << ','
<< "3000" << ','
<< "1200" << ','
<< "陕西省" << endl;

outFile << "lisi" << ','
<< to_string(2032.1) << ','
<< to_string(789.2) << ','
<< "北京市" << endl;

//数字需转为字符串进行写入,csv文件结束一行写入需要"\n"或者endl进行换行

outFile.close();

3.向csv文件中追加内容

与第2部分几乎相同,只不过是打开文件时选择ios::app方式进行。当文件不存在时会进行创建

ofstream outFile(fname, ios::app);

// ********写入两行数据*********

outFile << "wangwu" << ','
	<< "1234" << ','
	<< to_string(12.32) << ','
	<< "河南省" << endl;

outFile << "lisi" << ','
	<< to_string(2032.1) << ','
	<< to_string(789.2) << ','
	<< "北京市" << endl;

//数字需转为字符串进行写入,csv文件结束一行写入需要"\n"或者endl进行换行

outFile.close();

4.具体使用

4.1读入csv文件

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

void PrintCSVLine(vector<string> line_data)
{
	//此语法仅在C++11中适用
	for (string str : line_data)
	{
		cout << str << " ";
	}
	cout << endl;
}


//读入csv文件
int main() {
	string fname = "test.csv";
	//以读入方式打开文件
	ifstream csv_data(fname, ios::in);

	if (!csv_data.is_open())
	{
		cout << "Error: opening file fail" << endl;
		exit(1);
	}
	else {
		string line;

		vector<string> words; //声明一个字符串向量
		string word;
		// ------------读取数据-----------------
		// 读取标题行
		getline(csv_data, line);


		istringstream sin;
		// 按行读取数据
		while (getline(csv_data, line))
		{
			// 清空vector及字符串流,只存当前行的数据
			words.clear();
			sin.clear();

			sin.str(line);
			//将字符串流sin中的字符读到字符串数组words中,以逗号为分隔符
			while (getline(sin, word, ','))
			{
				//cout << word << endl;
				words.push_back(word); //将每一格中的数据逐个push
			}

			//输出此行中的内容
			PrintCSVLine(words);
		}


		csv_data.close();
	}



}

4.2写入csv文件

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


int main()
{
	string fname = "test.csv";

	ofstream outFile(fname, ios::out);

	if (outFile.is_open())  // 检查文件是否打开成功
	{
		// 写入标题行
		outFile << "name" << ','
			<< "income" << ','
			<< "expenditure" << ','
			<< "addr" << endl;

		// ********写入两行数据*********

		outFile << "zhangsan" << ','
			<< "3000" << ','
			<< "1200" << ','
			<< "陕西省" << endl;

		outFile << "lisi" << ','
			<< to_string(2032.1) << ','
			<< to_string(789.2) << ','
			<< "北京市" << endl;

		//数字需转为字符串进行写入,csv文件结束一行写入需要"\n"或者endl进行换行

		outFile.close();
	}

	else
	{
		cout << "文件无法打开!" << endl;
	}
}

4.3向csv文件追加

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


int main()
{
	string fname = "test.csv";

	//先判断文件是否存在
	ifstream file(fname);
	if (!file.is_open()) {
		cout << "File does not exist!" << endl;
		return 1;
	}
	else {
		cout << "File exists!" << endl;
		file.close();//必须先关闭文件后才可写入

		ofstream outFile(fname, ios::app);

		// ********写入两行数据*********
		outFile << "wangwu" << ','
			<< "1234" << ','
			<< to_string(12.32) << ','
			<< "河南省" << endl;

		outFile << "lisi" << ','
			<< to_string(2032.1) << ','
			<< to_string(789.2) << ','
			<< "北京市" << endl;

		//数字需转为字符串进行写入,csv文件结束一行写入需要"\n"或者endl进行换行

		outFile.close();
	}

	return 0;
}


内容参考

C++读写CSV文件_c++读取csv文件_灰灰2号的博客-CSDN博客

若发现此文章存在不足/缺陷/BUG,请联系作者修改文章来源地址https://www.toymoban.com/news/detail-603769.html

到了这里,关于C++对csv文件操作(读、写、追加)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++写csv文件

    其中有一个点需要注意,csv芬里尔之间要用逗号隔开

    2024年01月19日
    浏览(25)
  • 【头歌】——数据分析与实践-基于Python语言的文件与文件夹管理-文本 文件处理-利用csv模块进行csv文件的读写操作

    第1关 创建子文件夹 第2关 删除带有只读属性的文件 第3关 批量复制文件夹中的所有文件 未通过本题,如果您通过了本题欢迎补充到评论区,有时间我会整理进来 第1关 读取宋词文件,根据词人建立多个文件 第2关 读取宋词文件,并根据词人建立多个文件夹 第3关 读取宋词文

    2024年01月25日
    浏览(73)
  • 07-3_Qt 5.9 C++开发指南_文件目录操作

    Qt 为文件和目录操作提供了一些类,利用这些类可以方便地实现一些操作。Qt 提供的与文件和目录操作相关的类包括以下几个。 QCoreApplication:用于提取应用程序路径、程序名等文件信息 QFile: 除了打开文件操作外,QFile 还有复制文件、删除文件等功能 QFileInfo:用于提取文件的信

    2024年02月13日
    浏览(53)
  • 无缝数据转换!使用C++ 实现 Excel文件与CSV之间的相互转换

    CSV格式是一种通用的文本文件格式,可在多个应用程序之间共享和使用。相比之下,Excel文件是一种电子表格格式,通常只能在Microsoft Excel中编辑和查看。因此,将Excel文件转换为CSV格式可使数据更方便地在其他应用程序中使用;而将CSV文件转换为Excel格式则有利于在Microsoft

    2024年02月11日
    浏览(36)
  • 5.1 文件操作(读写、追加等)

    在 Python 中,文件操作是一项常用的任务。本节将介绍如何执行基本的文件操作,如读取、写入和追加数据。我们将通过实例代码详细讲解每个知识点。 在对文件进行操作之前,我们需要使用  open()  函数打开它。 open()  函数接受两个参数:文件名(包括路径)和模式。以下

    2024年02月08日
    浏览(40)
  • 【C++】C++核心编程(十一)文件操作

      程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化。    C++中对文件进行操作需要包含头文件 fstream   文件类型分为两种:     1、文本文件—文件以文本的ASCII码形式存储在计算机中;     2、二进制文件—

    2024年02月09日
    浏览(41)
  • 大数据:HDFS的Shell操作,进程启动管理,文件系统操作命令,创建文件文件夹,下载上传,复制移动,删除,展示,追加内容

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月07日
    浏览(71)
  • c++文件操作 (1) -- 读写文件

    目录 为什么使用文件操作 文件输入流和输出流 -- 相对于内存而言 文件操作  1. 文件操作常用类以及头文件 2. 文件输入流(写文件操作)  1. 写文本文件  1)文件操作是使用对象来实现的  2)文件输出  3)打开文件  open函数 : 2. 读文本文件  3. 写二进制文件   4. 读二进制

    2024年01月25日
    浏览(47)
  • C++核心编程——文件操作

    本专栏记录C++学习过程包括C++基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下, 不定时更新,欢迎关注 。 当前章节处于: ---------第1阶段-C++基础入门 ---------第2阶段实战-通讯录管理系统, ===== 第3阶段-C++核心编程 , -------

    2024年01月17日
    浏览(40)
  • C++——文件操作

    C++中输入输出是通过流对象进行操作,对于文件来说写文件就是将内容从程序输出到文件,需要用到写文件流ofstream;而读文件就是将内容从文件输入到程序,需要用到读文件流ifstream;这两个文件流类都包含在头文件fstream中,对文件操作需要包含fstream。 文本文件写入主要包

    2024年02月14日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包