繁体   English   中英

需要有关cin.get和cin.putback的帮助

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM