c++清理缓冲区问题
本帖最后由 skyddy 于 2020-6-2 09:54 编辑如下代码 cin.rdbuf()->in_avail() 一直获取为0 导致无法正确清理缓冲区
请问 c++ 中清除缓冲区 用什么方法呢 或者我这个方式有什么问题吗
还有就是为啥一直返回0,导致清理缓冲区失败 下次直接读取了剩余缓冲区中的内容
以下代码 在linux 上的gcc 和 windows上的mingw环境中都做过测试一直返回0
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[]) {
cout << "请输入一段字符:";
string str="";
cin >> str; // 这种输入方式遇到空格就终止了
cout << str << endl;
// 获取缓冲区中可读取的字符数量
int len = cin.rdbuf()->in_avail(); // 不知道为什么这里一直返回0
cout << "缓冲区剩余长度:" << len << endl;
cin.ignore(len, '\n');
cout << "再次输入一段字符:";
// 读入一行
getline(cin, str);
cout << str << endl;
return 0;
}
测试输入结果
请输入一段字符:hello skyddy
hello
缓冲区剩余长度:0
再次输入一段字符: skyddy
大佬们 欢迎你们的解惑 {:10_254:} 捞一捞 没人吗 就就孩子吧
页:
[1]