在C/C++中读写CSV文件,可以使用以下步骤:
- 包含必要的头文件。
- 打开CSV文件。
- 读取CSV文件的每一行。
- 解析每一行的数据。
- 将数据写入到新的CSV文件中。
- 关闭CSV文件。
以下是一个简单的示例代码:
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
// 分割字符串函数
std::vector<std::string> split(const std::string &s, char delimiter) {
std::vector<std::string> tokens;
std::string token;
std::istringstream tokenStream(s);
while (std::getline(tokenStream, token, delimiter)) {
tokens.push_back(token);
}
return tokens;
}
int main() {
// 打开CSV文件
std::ifstream inputFile("input.csv");
std::ofstream outputFile("output.csv");
// 检查文件是否成功打开
if (!inputFile.is_open() || !outputFile.is_open()) {
std::cerr << "无法打开文件" << std::endl;
return 1;
}
// 逐行读取和处理CSV文件
std::string line;
while (std::getline(inputFile, line)) {
// 分割每一行的数据
std::vector<std::string> data = split(line, ',');
// 处理数据(例如,将第一列的数据转换为大写)
for (size_t i = 0; i < data.size(); ++i) {
for (char &c : data[i]) {
c = std::toupper(c);
}
}
// 将处理后的数据写入新的CSV文件
for (size_t i = 0; i < data.size(); ++i) {
outputFile << data[i];
if (i < data.size() - 1) {
outputFile << ",";
}
}
outputFile << std::endl;
}
// 关闭CSV文件
inputFile.close();
outputFile.close();
return 0;
}
这个示例代码首先打开名为input.csv
的CSV文件,然后逐行读取和处理数据。在这个例子中,我们将每一列的数据转换为大写。处理后的数据将被写入名为output.csv
的新CSV文件中。最后,关闭两个文件。