在 C++ 中读取 CSV 文件

在 C++ 中读取 CSV 文件,可以使用标准库提供的文件操作功能,并通过字符串处理来解析 CSV 格式。以下是一个简单的例子,展示如何读取一个 CSV 文件并将其内容输出到控制台:

示例代码:

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>

using namespace std;

// 读取 CSV 文件并存储每一行数据
vector<vector<string>> readCSV(const string& filename) {
    ifstream file(filename);
    vector<vector<string>> data;

    string line;

    // 检查文件是否成功打开
    if (!file.is_open()) {
        cerr << "无法打开文件: " << filename << endl;
        return data;
    }

    // 逐行读取文件
    while (getline(file, line)) {
        stringstream ss(line);
        string cell;
        vector<string> row;

        // 使用逗号分割每个单元格的数据
        while (getline(ss, cell, ',')) {
            row.push_back(cell);
        }

        data.push_back(row);
    }

    file.close();
    return data;
}

// 打印读取的 CSV 数据
void printCSV(const vector<vector<string>>& data) {
    for (const auto& row : data) {
        for (const auto& cell : row) {
            cout << cell << " ";
        }
        cout << endl;
    }
}

int main() {
    string filename = "example.csv";  // CSV 文件名
    vector<vector<string>> data = readCSV(filename);

    cout << "读取的 CSV 文件内容:" << endl;
    printCSV(data);

    return 0;
}

说明:

  1. ifstream file(filename):打开指定的 CSV 文件。
  2. getline(file, line):按行读取文件。
  3. stringstream ss(line):通过字符串流对每一行进行解析,以便按逗号分割每个单元格。
  4. getline(ss, cell, ','):按逗号分割单元格数据。
  5. vector<vector<string>> data:用于存储所有的行和列。

示例 CSV 文件 (example.csv) 格式:

Name,Age,Location
John,25,New York
Jane,30,Los Angeles
Doe,22,Chicago

输出结果:

读取的 CSV 文件内容:
Name Age Location 
John 25 New York 
Jane 30 Los Angeles 
Doe 22 Chicago 

注意:

  • 这个例子假设 CSV 文件中的数据是没有包含引号的。如果数据字段中包含逗号或引号等特殊字符,可能需要做进一步处理。
  • 你可以根据需要扩展该代码,例如,处理有特殊字符的 CSV,或者将数据存储到更复杂的数据结构中。
No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next