[英]Need help regarding cin.get and cin.putback
我对编程很陌生,一直在看这段代码,试图了解它是如何工作的。 我的理解是,while循环每次运行的开始,程序都会等待输入,如果允许该输入,则循环将运行。 那是对的吗? 如果是这样,那么如果出现“!”,程序将如何打印出“ $” 键入,看看在那种情况下cout命令在其他情况下如何未激活?
int main() {
char ch;
cout << "enter a phrase: ";
while ( cin.get(ch) ) {
if (ch == '!') cin.putback('$');
else cout << ch;
while (cin.peek() == `#') cin.ignore(1,'#');
}
return 0;
}
输出:输入一个短语:现在是时候#好玩了! 现在是娱乐的时间
请参阅有关回putback
方法的文档 :
istream&退回(char c);
放回角色
尝试将流中的当前位置减少一个字符,使从流中提取的最后一个字符再次可用于输入操作中。
如果程序读取'!'
字符,它将'$'
字符放回流中,该字符在下一次循环迭代时读取并打印。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.