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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |