C++ 讀取.csv文件

實(shí)現(xiàn)用C++讀取.csv文件,并存到STL中

.csv文件即將表格數(shù)據(jù)轉(zhuǎn)換為用分隔字符分隔的值(也可以不是逗號(hào))

頭文件:
#include <fstream>
#include <string>
#include <sstream>
簡(jiǎn)單的demo
int main(){
    vector<vector<int>> user_arr;
    ifstream fp("xxx/user_data.csv"); //定義聲明一個(gè)ifstream對(duì)象,指定文件路徑
    string line;
    getline(fp,line); //跳過列名,第一行不做處理
    while (getline(fp,line)){ //循環(huán)讀取每行數(shù)據(jù)
        vector<int> data_line;
        string number;
        istringstream readstr(line); //string數(shù)據(jù)流化
        //將一行數(shù)據(jù)按','分割
        for(int j = 0;j < 11;j++){ //可根據(jù)數(shù)據(jù)的實(shí)際情況取循環(huán)獲取
            getline(readstr,number,','); //循環(huán)讀取數(shù)據(jù)
            data_line.push_back(atoi(number.c_str())); //字符串傳int
        }
        user_arr.push_back(data_line); //插入到vector中
    }
    return 0;
}

補(bǔ)充:
將字符串類型數(shù)據(jù)轉(zhuǎn)換成 int 類型需要先使用 .c_str() 轉(zhuǎn)成 const char* 類型,再用 atoi() 轉(zhuǎn)成 int ,如果轉(zhuǎn)為浮點(diǎn)型則 atof()long 型則 atol() 等等。

結(jié)果:
.csv文件
輸出結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • csv文件內(nèi)容由多行構(gòu)成,每行是逗號(hào)分隔的字符串。 csv可以用excel來顯示,但是不能使用excel來編輯保存...
    何幻閱讀 4,032評(píng)論 0 0
  • 標(biāo)準(zhǔn)c++中string類函數(shù)介紹 注意不是CString 之所以拋棄char*的字符串而選用C++標(biāo)準(zhǔn)程序庫(kù)中的...
    杰倫哎呦哎呦閱讀 1,377評(píng)論 0 8
  • C/C++頭文件一覽 C #include //設(shè)定插入點(diǎn) #include //字符處理 #include ...
    breezez閱讀 625評(píng)論 0 0
  • C/C++輸入輸出流總結(jié) 前兩天寫C++實(shí)習(xí)作業(yè),突然發(fā)現(xiàn)I/O是那么的陌生,打了好長(zhǎng)時(shí)間的文件都沒有打開,今天終...
    LuckTime閱讀 1,807評(píng)論 0 6
  • 1 “莫林……莫林……………” “臭貓貓!跑哪去了…” 曦晨滿屋子的大叫,又氣又急。 ...
    芝麻大餅閱讀 280評(píng)論 0 2

友情鏈接更多精彩內(nèi)容