加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C 11 – 从流中删除输入

发布时间:2020-12-16 07:13:49 所属栏目:百科 来源:网络整理
导读:当我有一个程序可能需要多达n行输入来解决问题然后开始下一个,我需要丢弃属于旧问题的所有输入行,当程序可以解决它之前阅读所有输入. 当然,我可以简单地循环,直到我到达新问题的输入,但读取和存储所有数据可能是昂贵的.有没有办法简单地告诉输入流忽略下一个
当我有一个程序可能需要多达n行输入来解决问题然后开始下一个,我需要丢弃属于旧问题的所有输入行,当程序可以解决它之前阅读所有输入.

当然,我可以简单地循环,直到我到达新问题的输入,但读取和存储所有数据可能是昂贵的.有没有办法简单地告诉输入流忽略下一个如此多的值?

解决方法

void discardLines(std::istream &in,std::size_t count)
{
    if (!in)  
       return;

    for (auto i = count; i != 0; --i)
         in.ignore(std::numeric_limits<std::streamsize>::max(),'n');
}

并使用任何istream类型调用它,如cin,ifstream和istringstream.

Reference for std :: basic_istream :: ignore.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读