首页 > 代码库 > c++cin.ignore()
c++cin.ignore()
c++ 中cin.ignore(100,‘\n‘);
的作用是清除输入流中多余的字符请问这句话是什么意思?
可以举个例子吗?
提问者采纳
这个其实就是忽略cin中的前100个字符,或是‘\n‘之前的字符
(因为cin会屏蔽‘\n‘,所以后一个条件不会起作用,可以改成‘#‘试试)。
如:
string str;
cin.ignore(5, ‘#‘);
cin >> str;
cout << str << endl;
如果输入 "12345678",
回车,那么输出就是"678",
因为字符中没有包含‘#‘,就是忽略前5个。
如果输入 "123#45678",
回车,那么输出就是"45678",
忽略‘#‘之前的。
当然,如果总共输入的数据少于5,且没有"#",那就全忽略了。
追问 谢谢,不过,清除输入流中多余的字符, 这句话是什么意思呢?
回答
你可以吧cin.ignore(x, y)中的参数看成两个条件,
x条件表示忽略x个,
y条件就表示忽略y之前的字符,
y条件优先级高于x。
平常,我们单独用 cin>>str 的时候,流缓冲区里面还没有字符,那么执行这句之后就等待用户输入。
但是用了 cin.ignore之后,从这句就开始往流里面输入了,
只不过输入到流里面的数据会按参数的要求去清除那些,到后面这句 cin >> str的时候,
流里面存在的是按条件清除之后的的数据,直接输出给str了。
提问者评价 谢谢你的耐心解答,好详细呀
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。