在C++中讀取CSV文件可以使用文件流操作符<<
和>>
,以及getline()
函數。以下是一個簡單的示例代碼:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
int main() {
std::ifstream file("data.csv");
std::vector<std::vector<std::string>> data;
if (file.is_open()) {
std::string line;
while (std::getline(file, line)) {
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);
}
file.close();
// 輸出CSV數據
for (const auto& row : data) {
for (const auto& cell : row) {
std::cout << cell << " ";
}
std::cout << std::endl;
}
} else {
std::cout << "Failed to open file." << std::endl;
}
return 0;
}
在這個示例中,我們首先打開名為"data.csv"的CSV文件,然后使用getline()
函數逐行讀取文件內容。對于每一行,我們使用stringstream
對象解析每個單元格,并將其存儲在一個vector<string>
中。最后,我們將每行數據存儲在一個vector<vector<string>>
中,其中每個向量代表一行數據。最后,我們遍歷這個二維向量并輸出CSV數據。
注意:這里假設CSV文件中的單元格以逗號分隔,如果使用其他分隔符,需要相應地修改上面的代碼。