cin.ignore 和 cin.sync 之间的区别
The difference between cin.ignore and cin.sync
cin.ignore
和cin.sync
有什么区别?
cin.ignore
丢弃字符,直到达到指定的数量,或者直到达到分隔符(如果包含)。如果不带参数调用它,则会从输入缓冲区中丢弃一个字符。
例如,cin.ignore (80, 'n')
将忽略 80 个字符,或者忽略找到的任意数量的字符,直到它找到换行符。
cin.sync
丢弃输入缓冲区中的所有未读字符。但是,不能保证在每个实现中都这样做。因此,如果您想要一致性,ignore
是更好的选择。
cin.sync()
只会清除剩下的东西。对于ignore
无法完成的sync()
,我能想到的唯一用途是替换system ("PAUSE");
:
cin.sync(); //discard unread characters (0 if none)
cin.get(); //wait for input
对于cin.ignore()
和cin.get()
,这可能有点混合:
cin.ignore (std::numeric_limits<std::streamsize>::max(),'n'); //wait for newline
//cin.get()
如果还剩下一个换行符,只是放ignore
似乎会跳过它。但是,如果没有换行符,则同时放置两者将等待两个输入。丢弃任何未读取的内容可以解决这个问题,但同样,并不一致。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- C++中的cin.ignore()函数不适用于整个流
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- C++ - "!pointer"和"pointer == nullptr"的区别?
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- Problems with std::cin.fail()
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 在 const 函数中通过引用和指针返回之间的区别
- cin>>gender 和 cin>>*gender ( c 样式文本字符串)有什么区别
- STD :: cin和Scanf()应用于字符串之间的区别
- cin>>x;cin>>y 和 cin>>x>>y 有什么区别
- 我创建的c++istream对象和cin之间的区别在哪里,它在库中的可见位置在哪里
- 字符数组的 cin 和 cin.get() 之间的区别
- cin.ignore 和 cin.sync 之间的区别
- 在cin中使用空格键和回车键输入值的区别
- ifstream打开由cin命名的文件,但从数组中提取时不打开.cin和常规字符串定义之间的任何区别