关于c++里的cin,以及缓冲区
答案:1 悬赏:30 手机版
解决时间 2021-02-23 23:51
- 提问者网友:欲劫无渡
- 2021-02-23 20:12
关于c++里的cin,以及缓冲区
最佳答案
- 五星知识达人网友:像个废品
- 2021-02-23 20:34
cin是包含一个错误检查的。如果cin中缓存区的数据是不正确的,它要求程序必须对其进行处理。否则后续的输入都会是有问题的。cin通过标志位的方式来进行标注。我们需要调用clear来清除这个标志位。
ignore是用来清空当前的缓存区的。默认是清除到EOF为止。
如果不ignore,那么cin里面的错误的数据还在。那么读取还是不正常的。
cin和cout的缓冲区是不一样的。程序常用的数据流有stdin,stdout,stderr。追问多谢解答,看来我理解错缓冲区绑定的意思了。
但是
尝试在后面添
char tmp;
cin< 还是不行,说明cin在第一次读取失败后,把错误的输入丢弃了。但好像又没丢全。请问这个时候缓冲区中还剩了什么?考虑win下回车是/r/n,有没有可能是/n,有办法验证么?追答cin>>tmp, cout<
ignore是用来清空当前的缓存区的。默认是清除到EOF为止。
如果不ignore,那么cin里面的错误的数据还在。那么读取还是不正常的。
cin和cout的缓冲区是不一样的。程序常用的数据流有stdin,stdout,stderr。追问多谢解答,看来我理解错缓冲区绑定的意思了。
但是
尝试在后面添
char tmp;
cin<
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯