VS中cin.sync()函数并不能清空输入缓冲区-创新互联

VS中cin.sync()函数并不能清空输入缓冲区,而在VC中可以,这是因为调用sync()后可能会清空/恢复原状/什么都不干,具体哪种行为取决于编译器。

创新互联建站是专业的曲江网站建设公司,曲江接单;提供成都网站设计、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行曲江网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

The only portable way to 'clear' an input buffer is by reading and discarding characters until a particular character (for example a new line) occurs or a limit is reached. (“清除”输入缓冲区的唯一可移植方法是读取和丢弃字符,直到出现特定字符(例如新行)或达到限制。)

For example:

cin.ignore(std::numeric_limits::max(),'\n');

例子中的函数作用是跳过输入流中n个字符,或在遇到指定的终止字符时提前结束(此时跳过包括终止字符在内的若干字符)。

可以用cin.ignore(4096,'\n'),即保证前一个参数足够大,这样就会跳过回车键前的所有内容。

There is no way using standard C++ facilities to 'clear everything in the stdin buffer till it is empty'.(没有标准的c++工具能清空缓冲区里的所有内容直到它为空。)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:VS中cin.sync()函数并不能清空输入缓冲区-创新互联
路径分享:http://myzitong.com/article/cdphod.html