📅  最后修改于: 2023-12-03 15:09:08.130000             🧑  作者: Mango
在C++中,我们经常需要读入文件中的数据并进行处理。对于逗号分隔的文件,我们可以使用std::getline()
函数来读入每一行,并使用std::stringstream
来分割每一行中的逗号分隔项,并将其存入数组中。
以下是读取逗号分隔文件到数组的步骤:
下面是完整的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
因此,我们成功地将逗号分隔的文件读入数组中了。