c++怎么讀取csv文件中的數(shù)據(jù)

c++
小億
205
2024-06-07 17:29:30

在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)的分隔符即可。

0