c++读写csv文件
时间: 2023-07-29 14:07:38 浏览: 141
在C++中读写csv文件,可以使用STL库中的fstream和sstream。具体步骤如下:
1. 包含头文件:
```c++
#include <fstream>
#include <sstream>
#include <iostream>
#include <string>
#include <vector>
```
2. 定义读取csv文件的函数:
```c++
// 读取csv文件
std::vector<std::vector<std::string>> readCsv(std::string filename) {
std::vector<std::vector<std::string>> data; // 存储csv文件中的数据
std::ifstream file(filename); // 打开csv文件
std::string line; // 存储每行数据的字符串
while (std::getline(file, line)) { // 逐行读取csv文件
std::vector<std::string> row; // 存储每行数据的向量
std::stringstream ss(line); // 将每行数据的字符串转换为流
std::string cell; // 存储每个单元格的字符串
while (std::getline(ss, cell, ',')) { // 逐个单元格读取每行数据
row.push_back(cell); // 将单元格的字符串添加到每行数据的向量中
}
data.push_back(row); // 将每行数据的向量添加到存储csv文件数据的向量中
}
return data; // 返回存储csv文件数据的向量
}
```
3. 定义写入csv文件的函数:
```c++
// 写入csv文件
void writeCsv(std::string filename, std::vector<std::vector<std::string>> data) {
std::ofstream file(filename); // 创建csv文件
for (auto row : data) { // 逐行写入csv文件
for (auto cell : row) { // 逐个单元格写入每行数据
file << cell << ','; // 将单元格的字符串写入csv文件,并添加逗号分隔符
}
file << std::endl; // 每行数据写入完成后,添加换行符
}
file.close(); // 关闭csv文件
}
```
4. 调用读取和写入csv文件的函数:
```c++
int main() {
std::string filename = "data.csv"; // csv文件路径
std::vector<std::vector<std::string>> data = readCsv(filename); // 读取csv文件
writeCsv("new_data.csv", data); // 将读取的csv文件数据写入新的csv文件
return 0;
}
```
阅读全文