C++中如何将数据保存为CSV文件
作者:Mz枫
这篇文章主要介绍了C++中如何将数据保存为CSV文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
C++将数据保存为CSV文件
因为最近涉及到保存模型推理结果的输出文件,所以学一学如何将数据保存为CSV文件,比如保存检测框box的顶点,置信度,label,入侵检测的结果等。
用到的也是C++的ofstream,ofstream有一个操作是"<<",这个也很好用,就类似std::cout的操作一样即可。
比如我现在的数据是比较统一的,每一个样本是一行,一行数据要分成四列,第一列是样本的图像地址,第二列是标签,第三列是最终预测值,第四列是概率,每一列的格式是一样的
那么我的代码就是这样:
ofstream file(CSV_PATH); if (file) { file << image_path << "," << label << "," << prediction << "," << probability << "\n"; } file.close();
要注意的是,逗号表示的是换列,换行符号就是换行。
CSV文件可以用excel直接打开
如何存储CSV文件
应用工程里,经常会遇到存储一些数据,存储下来进行分析
#include <iostream> #include <fstream> using namespace std; std::string CSV_PATH = "./data.csv"; ofstream csv; int frame_num = 0; struct Name { int age; float height; float weight; int score; }; int main() { Name Zhangsan{30, 1.75, 78, 98}; csv.open(CSV_PATH); while (true) { if (csv.is_open()) { frame_num++; if (frame_num == 1) { csv << "age" << "," << "height(m)" << "," << "weight(kg)" << "," << "score" << "\n"; } else { csv << Zhangsan.age << "," << Zhangsan.height << "," << Zhangsan.weight << "," << Zhangsan.score << "\n"; } } if (frame_num > 10000) { csv.close(); } } return 0; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。