holyya.com
2025-09-04 11:15:15 Thursday
登录
文章检索 我的文章 写文章
C++编程:如何写入CSV文件
2023-06-24 10:11:18 深夜i     --     --
C++ CSV文件 写入

CSV文件是一种逗号分隔值文件,常用于存储表格数据。在C++编程中,处理CSV文件也是常见的任务之一。本文将介绍如何使用C++编写CSV文件。

1. 创建CSV文件

首先,需要创建一个CSV文件并打开它,可以使用文件流来实现。例如:


#include <iostream>

#include <fstream>

int main() {

  std::ofstream csv_file("example.csv");

  if (!csv_file)

    std::cerr << "Failed to create CSV file." << std::endl;

    return 1;

  

  // TODO: 写入数据到CSV文件中

  csv_file.close();

  return 0;

}

这里使用了 `ofstream` 类来创建和打开一个文件,如果创建失败,会输出错误信息。

2. 写入数据到CSV文件中

CSV文件中的数据格式是以逗号分隔的值,每行数据以回车符结束。因此需要按照这个格式来写入数据到CSV文件中。

可以将数据作为字符串拼接成一行,然后将该字符串写入文件中。例如:


#include <iostream>

#include <fstream>

int main() {

  std::ofstream csv_file("example.csv");

  if (!csv_file)

    std::cerr << "Failed to create CSV file." << std::endl;

    return 1;

  

  // 写入表头

  csv_file << "Name, Age, Score" << std::endl;

  // 写入数据行

  csv_file << "Tom, 20, 80.5" << std::endl;

  csv_file << "Jack, 22, 75.0" << std::endl;

  csv_file << "Lucy, 23, 90.5" << std::endl;

  csv_file.close();

  return 0;

}

这里将表头和数据行分别写入文件中,每行数据以逗号分隔,以回车符结束。

3. 读取CSV文件

在实际应用中,通常需要读取已经存在的CSV文件并进行处理。可以使用文件流来逐行读取CSV文件,然后将每一行数据分割成逗号分隔的值。例如:


#include <iostream>

#include <fstream>

#include <string>

#include <vector>

int main() {

  std::ifstream csv_file("example.csv");

  if (!csv_file)

    std::cerr << "Failed to open CSV file." << std::endl;

    return 1;

  

  std::string line;

  std::vector<std::vector<std::string>> data;

  // 逐行读取CSV文件

  while (std::getline(csv_file, line)) {

    std::vector<std::string> row;

    std::string cell;

    // 分割行数据

    for (auto c : line) {

      if (c == ',') {

        row.push_back(cell);

        cell = "";

      } else {

        cell += c;

      }

    }

    row.push_back(cell);

    data.push_back(row);

  }

  csv_file.close();

  // TODO: 处理读取到的数据

  return 0;

}

这里使用 `ifstream` 类来打开并读取CSV文件,使用 `std::getline` 函数逐行读取每一行数据。在读取每一行数据后,可以使用循环遍历分割每个单元格的数据,并将其保存到一个二维向量中。最后,可以对读取到的数据进行处理。

以上是在C++编程中如何编写和处理CSV文件的基本方法,需要根据实际需求进行相应的修改和优化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复