为了账号安全,请及时绑定邮箱和手机立即绑定

使用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 关注
  • 1729 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信