char buff[3];
cout<<"From: ";
cin.getline(buff, 3);
//something something
cout<<"To: ";
cin.getline(buff, 3);
如何在评论中清除缓冲区,以便额外的字符不会转到我的第二个cin
?
答案 0 :(得分:5)
一种方法是使用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
读取所有字符,直到换行符。
答案 1 :(得分:0)
答案 2 :(得分:0)
#import<string.h>
memset(buf, 0, 3);
这将用零填充缓冲区。