21xrx.com
2025-03-26 01:33:28 Wednesday
文章检索 我的文章 写文章
如何使用C++的vector容器读取和存储CSV文件数据?
2023-06-27 19:15:00 深夜i     --     --
C++ vector 容器 CSV文件 读取 存储

如果您正在使用C++语言来处理CSV文件,vector容器可以让您的工作更加高效。vector是一个动态数组容器,可以存储和访问变长数组。以下是如何使用vector容器来读取和存储CSV文件数据的步骤:

1. 包含必要的头文件

首先,需要包含以下头文件:iostream,fstream 和vector。iostream用于输入和输出,fstream用于读取和写入文件,vector用于存储数据。

2. 读取CSV文件数据

使用fstream的open方法来打开CSV文件,然后使用getline方法从文件中读取每一行数据。使用stringstream将每行数据分解成逗号分隔符,然后将它们存储在vector中。最后,使用vector的push_back方法将数据存储。

3. 示例代码

以下是一个简单的示例代码:


#include <iostream>

#include <fstream>

#include <vector>

#include <sstream>

using namespace std;

int main()

{

 vector<vector<string>> data; // 定义一个二维vector用于存储数据

 string line, word;

 ifstream file("data.csv");

 

 while (getline(file, line))

 {

  vector<string> row; // 定义一个一维vector用于存储行数据

  stringstream ss(line);

  

  while (getline(ss, word, ',')) // 使用逗号分隔符将行数据分解成单词

  {

   row.push_back(word); // 将单词存储在一维vector中

  }

  

  data.push_back(row); // 将一维vector存储在二维vector中

 }

 

 file.close(); // 关闭文件

 

 // 打印读取的数据

 for (int i = 0; i < data.size(); i++)

 {

  for (int j = 0; j < data[i].size(); j++)

  {

   cout << data[i][j] << " ";

  }

  

  cout << endl;

 }

 

 return 0;

}

4. 存储CSV文件数据

使用ofstream的open方法来创建一个新的CSV文件,然后将vector中的数据写入文件。使用stringstream将vector中的每一行数据连接为一个字符串,使用逗号分隔符分隔每个单词。使用ofstream的close方法来关闭文件。

5. 示例代码

以下是一个简单的示例代码:


#include <iostream>

#include <fstream>

#include <vector>

#include <sstream>

using namespace std;

int main()

{

 vector<vector<string>> data = { "Quantity",

                 "2.5",

                 "1.8",

                 "Orange"};

                

 ofstream file("data.csv");

 

 for (int i = 0; i < data.size(); i++)

 {

  stringstream ss;

  

  for (int j = 0; j < data[i].size(); j++)

  {

   ss << data[i][j]; // 将单词存储在stringstream中

   if (j != data[i].size() - 1)

   "; // 添加逗号分隔符

   

  }

  

  file << ss.str() << endl; // 将行数据写入文件

 }

 

 file.close(); // 关闭文件

 

 return 0;

}

在读取和存储CSV文件数据时,vector容器是一个非常有用的工具,可以大大简化代码,提高效率。按照上述步骤和示例代码,您可以轻松地读取和存储CSV文件数据。

  
  

评论区