如何从cin中清除无关字符
How do I flush extraneous characters from cin?
char buff[3];
cout<<"From: ";
cin.getline(buff, 3);
//something something
cout<<"To: ";
cin.getline(buff, 3);
如何清除注释处的缓冲区,使多余的字符不会进入我的第二个cin
?
一种方法是使用istream::ignore
:
cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
这将跳过最大可能的字符数,直到读取换行符为止。
不过,就其价值而言,您可能不应该使用istream::getline
,因为它可以处理原始C样式字符串。更好的选择是使用std::string
和自由函数std::getline
:
std::string buffer;
getline(cin, buffer);
这将自动读取stdin
中的所有字符,直到换行为止。
看看istream::ignore
#import<string.h>
memset(buf, 0, 3);
这将用零填充缓冲区。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何使用内存集清除字符数组
- 清除字符 (?) 以在C++中创建多个文件名
- 在赋值后清除C++中固定字符数组的内容
- 当用户输入错误输入时,一次清除 cin 中的整行而不是一个字符
- 清除输入缓冲区中的所有其他字符
- 清除一个字符数组的最佳方案-是否为memset
- 我正在尝试清除数据文件中具有某些条件的特殊字符,但这些条件不满足
- 清除字符串中的非字母字符
- 如何从cin中清除无关字符