C++中如何將數(shù)據(jù)保存為CSV文件
C++將數(shù)據(jù)保存為CSV文件
因?yàn)樽罱婕暗奖4婺P屯评斫Y(jié)果的輸出文件,所以學(xué)一學(xué)如何將數(shù)據(jù)保存為CSV文件,比如保存檢測(cè)框box的頂點(diǎn),置信度,label,入侵檢測(cè)的結(jié)果等。
用到的也是C++的ofstream,ofstream有一個(gè)操作是"<<",這個(gè)也很好用,就類似std::cout的操作一樣即可。
比如我現(xiàn)在的數(shù)據(jù)是比較統(tǒng)一的,每一個(gè)樣本是一行,一行數(shù)據(jù)要分成四列,第一列是樣本的圖像地址,第二列是標(biāo)簽,第三列是最終預(yù)測(cè)值,第四列是概率,每一列的格式是一樣的
那么我的代碼就是這樣:
ofstream file(CSV_PATH); if (file) { ? ? file << image_path << "," << label << "," << prediction << "," << probability << "\n"; } file.close();
要注意的是,逗號(hào)表示的是換列,換行符號(hào)就是換行。
CSV文件可以用excel直接打開
如何存儲(chǔ)CSV文件
應(yīng)用工程里,經(jīng)常會(huì)遇到存儲(chǔ)一些數(shù)據(jù),存儲(chǔ)下來進(jìn)行分析
#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; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++ Leetcode實(shí)現(xiàn)從英文中重建數(shù)字
本文主要介紹了當(dāng)給你一個(gè)字符串s,其中包含字母順序打亂的用英文單詞表示的若干數(shù)字(0-9)時(shí),如何通過Leetcode按升序返回原始的數(shù)字。感興趣的童鞋可以來看看2021-11-11Visual Studio 2022 的安裝和創(chuàng)建C++項(xiàng)目(圖文教程)
本文主要介紹了Visual Studio 2022 的安裝和創(chuàng)建C++項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05