21xrx.com
2024-12-23 02:23:35 Monday
登录
文章检索 我的文章 写文章
C++ 实现 CSV 文件读取并存储到数组
2023-06-29 17:38:49 深夜i     --     --
C++ CSV 文件读取 存储 数组

CSV(Comma Separated Values)是一种常见的数据格式,它将数据保存为每个字段之间用逗号分隔的文本文件。如果我们需要处理大量的数据,将这些数据保存到CSV文件中是很方便的。本文介绍如何使用C++实现CSV文件的读取,并将其存储到数组中。

首先,我们需要包含以下头文件:


#include <iostream>

#include <fstream>

#include <string>

#include <vector>

其中,`iostream`用于输入输出,`fstream`用于文件操作,`string`用于字符串操作,`vector`用于动态数组。

接着,我们定义一个函数 `readCSV()`,该函数接收一个文件路径作为参数,并将CSV文件的数据存储到一个二维数组中。


std::vector<std::vector<std::string>> readCSV(std::string filePath) {

  std::ifstream input(filePath);

  std::vector<std::vector<std::string>> dataArray;

  if (input) {

    std::string line;

    while (getline(input, line)) {

      std::vector<std::string> row;

      std::string field;

      std::stringstream ss(line);

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

        row.push_back(field);

      }

      dataArray.push_back(row);

    }

  }

  else

    std::cout << "Cannot open file!" << std::endl;

  

  return dataArray;

}

这个函数使用`std::ifstream`打开CSV文件,并逐行读取CSV文件中的数据。对于每一行,函数将其拆分为单个字段,并将这些字段保存到一个动态数组中。最后,函数将所有行存储到一个二维数组中,并将其返回。

现在,我们可以将读取的CSV数据存储到一个数组中。以下是一个示例程序,该程序使用上述函数读取CSV文件的数据,并将其存储在数组中。


int main() {

  std::vector<std::vector<std::string>> data = readCSV("data.csv");

  // 统计行数和列数

  int rows = data.size();

  int cols = data[0].size();

  // 输出数组中的数据

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols; j++) {

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

    }

    std::cout << std::endl;

  }

  return 0;

}

这个程序使用`readCSV()`函数读取`data.csv`文件中的数据,并将其存储到一个二维数组中。接着,程序统计行数和列数,并使用嵌套循环输出数组中的数据。

我们可以使用类似的技术来处理更复杂的CSV文件,并将其存储到多维数组中。无论您的CSV文件有多复杂,这个方法都能提供一种简单有效的方法来读取和操作数据。

  
  

评论区

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