chr*_*ris 15
cin.ignore丢弃字符,最多为指定的数字,或者直到达到分隔符(如果包含).如果不带参数调用它,它会从输入缓冲区中丢弃一个字符.
例如,cin.ignore (80, '\n')将忽略80个字符,或者忽略它到达换行符之前找到的数量.
cin.sync丢弃输入缓冲区中的所有未读字符.但是,并不保证在每个实现中都这样做.因此,ignore如果您想要一致性,这是一个更好的选择.
cin.sync()只会清除剩下的东西.我能想到的唯一的使用sync(),不能用做ignore是一个替代品system ("PAUSE");:
cin.sync(); //discard unread characters (0 if none)
cin.get(); //wait for input
Run Code Online (Sandbox Code Playgroud)
有了cin.ignore()和cin.get(),这可能有点混合:
cin.ignore (std::numeric_limits<std::streamsize>::max(),'\n'); //wait for newline
//cin.get()
Run Code Online (Sandbox Code Playgroud)
如果还剩下换行符,ignore那么看起来就会跳过它.但是,如果没有换行,则将两个输入等待两个输入.丢弃任何未读取的内容可以解决该问题,但同样不一致.
| 归档时间: |
|
| 查看次数: |
10603 次 |
| 最近记录: |