在C++中讀取CSV文件中的數(shù)據(jù)通常需要使用文件流(ifstream)和字符串流(stringstream)來(lái)處理。以下是一個(gè)示例代碼,演示如何讀取CSV文件中的數(shù)據(jù):
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
int main() {
// 打開(kāi)CSV文件
std::ifstream file("data.csv");
std::vector<std::vector<std::string>> data; // 用來(lái)存儲(chǔ)CSV文件中的數(shù)據(jù)
// 逐行讀取文件
std::string line;
while (std::getline(file, line)) {
std::vector<std::string> row;
std::stringstream ss(line);
std::string cell;
// 逐個(gè)單元格讀取數(shù)據(jù)
while (std::getline(ss, cell, ',')) {
row.push_back(cell);
}
data.push_back(row); // 將當(dāng)前行數(shù)據(jù)存入data中
}
// 輸出讀取的數(shù)據(jù)
for (const auto& row : data) {
for (const auto& cell : row) {
std::cout << cell << " ";
}
std::cout << std::endl;
}
return 0;
}
在這個(gè)示例中,我們首先打開(kāi)了名為“data.csv”的CSV文件,并使用getline函數(shù)逐行讀取文件內(nèi)容。然后,在內(nèi)部循環(huán)中,我們使用stringstream和getline函數(shù)來(lái)逐個(gè)單元格讀取每行數(shù)據(jù),并將其存儲(chǔ)在二維向量data中。最后,我們遍歷data向量,并輸出讀取的數(shù)據(jù)。
請(qǐng)注意,上面的示例假設(shè)CSV文件中的數(shù)據(jù)以逗號(hào)作為分隔符。如果CSV文件中使用其他分隔符,只需將getline函數(shù)的第三個(gè)參數(shù)改為相應(yīng)的分隔符即可。