📌  相关文章
📜  如何将逗号分隔的文件读入数组 c++ (1)

📅  最后修改于: 2023-12-03 15:09:08.130000             🧑  作者: Mango

如何将逗号分隔的文件读入数组 C++

在C++中,我们经常需要读入文件中的数据并进行处理。对于逗号分隔的文件,我们可以使用std::getline()函数来读入每一行,并使用std::stringstream来分割每一行中的逗号分隔项,并将其存入数组中。

以下是读取逗号分隔文件到数组的步骤:

  1. 打开文件并创建字符串变量
  2. 创建数组并定义数组大小
  3. 读取每一行并用stringstream分隔逗号分隔项,将其存入数组中
  4. 关闭文件

下面是完整的C++代码片段,其中假设读入的文件名为data.csv,数组名为myArray

#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>

int main()
{
  std::vector<std::vector<double>> myArray; // 定义二维vector存储数据
  std::ifstream file("data.csv"); // 打开文件
  std::string line; // 用于存储行数据

  // 循环读取每一行数据
  while (std::getline(file, line))
  {
    std::vector<double> row; // 定义vector存储每一行数据
    std::stringstream ss(line); // 用于分隔csv文件中每一行数据的stringstream对象

    // 循环读取分隔项并存储到vector中
    for (double num; ss >> num; )
    {
      row.push_back(num);
      if (ss.peek() == ',') ss.ignore();
    }
    myArray.push_back(row); // 将每一行数据存储到二维vector中
  }

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

  // 遍历输出每一个数字
  for (const auto& row : myArray)
  {
    for (const auto& num : row)
    {
      std::cout << num << " ";
    }
    std::cout << std::endl;
  }

  return 0;
}

为了更好地说明代码的运行情况,让我们假设data.csv文件的数据如下:

1,2,3
4,5,6
7,8,9

上面的程序将读取该文件,并将数字存储到二维vectormyArray中。然后,我们遍历myArray并输出每一个数字,输出结果如下:

1 2 3
4 5 6
7 8 9

因此,我们成功地将逗号分隔的文件读入数组中了。