C++读写纯数据CSV文件

CSV文件

CSV(逗号分隔值)是一种纯文本文件格式,用于存储表格数据(例如电子表格或数据库)。它本质上存储的表格数据包括数字和纯文本。大多数在线服务使用户可以自由地将网站中的数据导出为CSV文件格式。CSV文件通常会在Excel中打开,几乎所有数据库都具有不同的特定工具以允许导入相同的文件。所以C++可以很便利的处理CSV文件

CPP读取纯数据csv文件

由于项目csv文件中只有数据,所以只写了读取代码,若有其他字符,修改存储类型即可
源码:

#include <iostream> 
#include <string>
#include <fstream>
#include <sstream>
#include <vector>
// 统计一行元素个数
int getLong(string line) {
    
    
    int numsize = 0;
    for (auto a : line)
        if (a == ',') numsize++;
    return numsize + 1;
}
// 主函数入口
vector<vector<double>> csvRead(string filename)
{
    
    
	vector<vector<double>> result;
	ifstream infile(filename, ios::in);
	string line;
	getline(infile, line);
	int sizex = getLong(line);
	while (getline(infile, line)) {
    
    
		stringstream ss(line);
		string str;
		vector<double> lineReader;
		for (int i = 0; i < sizex; i++) {
    
    
			getline(ss, str, ',');
			lineReader.push_back(stod(str));
		}
		result.push_back(lineReader);
	}
	return result;
}

CPP写CSV文件

由于代码比较简单,就不做过多介绍
源码

bool csvWrite(vector<vector<double>> data, string output_filename)
{
    
    
	ofstream outFile(output_filename, ios::out);
    if (!outFile)
    {
    
    
        // out part
        cout << "打开文件失败!" << endl;

        return false;
    }
    for (auto i : data) {
    
    
        for (auto j : i) {
    
    
            outFile << j << ",";
        }
        outFile << endl;
    }
    outFile.close();
	return true;
}

猜你喜欢

转载自blog.csdn.net/weixin_51717597/article/details/126610245