21xrx.com
2024-11-22 07:58:49 Friday
登录
文章检索 我的文章 写文章
C++读写CSV文件
2023-06-26 19:01:30 深夜i     --     --
C++ CSV文件

CSV文件是一种常用的数据格式,常常用于存储表格数据。C++作为一种广泛使用的编程语言,也可以通过其提供的文件流机制进行CSV文件的读写操作。本文将介绍如何使用C++读写CSV文件。

读取CSV文件

要读取CSV文件,我们可以使用C++标准库中的fstream头文件中的ifstream类。示例如下:


#include <fstream>

#include <iostream>

#include <sstream>

#include <string>

#include <vector>

using namespace std;

int main() {

 ifstream file("example.csv");

 string line;

 vector<vector<string>> data;

 while (getline(file, line)) {

  stringstream ss(line);

  string cell;

  vector<string> row;

  while (getline(ss, cell, ',')) {

   row.push_back(cell);

  }

  data.push_back(row);

 }

 for (const auto& row : data) {

  for (const auto& cell : row)

   cout << cell << " ";

  

  cout << endl;

 }

 return 0;

}

上述示例代码首先定义了一个ifstream类型的对象file,并指定要打开的CSV文件路径。接着,我们定义了一个vector类型的二维数组data,用于存储CSV文件中的数据。

我们使用while循环读取CSV文件中的每一行数据,并使用stringstream类将行数据解析成单元格。在解析单元格时,我们使用getline函数指定分隔符为“,”,将单元格内容提取出来,然后将其存储到vector类型的一维数组row中。

最后,我们将每行数据存储到data数组中,并使用for循环遍历data数组,输出CSV文件中的所有数据。

写入CSV文件

要写入CSV文件,我们可以使用C++标准库中的fstream头文件中的ofstream类。示例如下:


#include <fstream>

#include <iostream>

#include <sstream>

#include <vector>

using namespace std;

int main() {

 vector<vector<string>> data = { "4", "6"};

 ofstream file("example.csv");

 for (const auto& row : data) {

  stringstream ss;

  for (const auto& cell : row)

   ss << cell << "

  string line = ss.str();

  line.pop_back();

  file << line << endl;

 }

 return 0;

}

上述示例代码首先定义了一个二维数组data,用于存储要写入CSV文件的数据。接着,我们定义了一个ofstream类型的对象file,并指定要写入的CSV文件路径。

我们使用for循环遍历data数组,将每行数据转换成字符串,并使用stringstream类将其格式化为CSV格式。在格式化数据时,我们使用“,”作为分隔符,以分隔每个单元格。最后,我们将每行数据写入到CSV文件中,并在每行数据末尾添加一个换行符,以确保每行数据占据独立的一行。

总结

本文介绍了如何使用C++读写CSV文件。使用C++读取CSV文件,我们可以使用fstream头文件中的ifstream类,并使用stringstream类将CSV数据解析成单元格。使用C++写入CSV文件,我们可以使用fstream头文件中的ofstream类,并使用stringstream类将数据格式化为CSV格式,然后将其写入CSV文件。通过学习C++读写CSV文件的方法,我们可以更方便地处理数据,并进行数据分析和建模。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复