亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用C ++ ifstream從文本文件讀取整數

使用C ++ ifstream從文本文件讀取整數

C++
慕碼人8056858 2019-12-03 10:52:01
我想從文本文件中讀取圖鄰接信息并將其存儲到向量中。該文件具有任意行每行都有任意數量的以'\ n'結尾的整數例如,First line:0 1 4Second line:1 0 4 3 2Thrid line:2 1 3Fourth line:3 1 2 4Fifth line:4 0 1 3如果我使用getline()一次讀取一行,該如何解析該行(因為每一行都有可變數量的整數)?有什么建議么?
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

首先使用std::getline函數讀取一行,然后使用std::stringstream來從該行讀取整數,如下所示:


std::ifstream file("input.txt");


std::vector<std::vector<int>> vv;

std::string line;

while(std::getline(file, line))

{

    std::stringstream ss(line);

    int i;

    std::vector<int> v;

    while( ss >> i ) 

       v.push_back(i);

    vv.push_back(v);

}

您還可以將循環體編寫為:


while(std::getline(file, line))

{

    std::stringstream ss(line);

    std::istream_iterator<int> begin(ss), end;

    std::vector<int> v(begin, end);

    vv.push_back(v);

}

這看起來更短,更好?;蚝喜?最后兩行:


while(std::getline(file, line))

{

    std::stringstream ss(line);

    std::istream_iterator<int> begin(ss), end;

    vv.push_back(std::vector<int>(begin, end));

}

現在不要將其縮短,因為它看起來很丑。


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 1778 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號