c++读取带逗号的数据
时间: 2024-10-13 19:05:35 浏览: 33
在C++中,如果你想要读取包含逗号分隔值(CSV,Comma-Separated Values)的数据,通常可以使用文件流和字符串处理函数。这里是一个简单的例子,展示如何从一个文本文件中逐行读取并解析逗号分隔的数据:
```cpp
#include <fstream>
#include <sstream>
#include <vector>
std::vector<std::string> readCSV(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
throw std::runtime_error("Failed to open the file");
}
std::vector<std::string> data;
std::string line;
while (getline(file, line)) {
std::stringstream ss(line);
std::string field;
std::vector<std::string> fields;
// 解析每一列数据
while (std::getline(ss, field, ',')) {
fields.push_back(field); // 将每个字段添加到向量中
}
data.push_back(fields); // 添加完整的行数据到结果向量中
}
return data;
}
int main() {
try {
std::vector<std::string> csvData = readCSV("data.csv");
for (const auto& row : csvData) {
for (const auto& cell : row) {
std::cout << cell << " ";
}
std::cout << std::endl;
}
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个示例中,`readCSV`函数打开指定的CSV文件,逐行读取,并对每一行进行分割,生成的结果存储在一个二维`std::vector<std::string>`中。
阅读全文