需要有关cin.get和cin.putback

时间:2017-09-25 14:54:06

标签: c++ get cin

我是编程新手,正在查看这段代码,试图了解它是如何工作的。我的理解是,程序等待输入的while循环的每次运行的开始,如果允许该输入,则运行循环。那是对的吗?如果是,如果'!',程序怎么打印'$'键入,看看在这种情况下如何激活else案例中的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;
 }

输出:输入一个短语:现在!是#the!time#for!fun#! 现在$ isthe $可能性会$ $乐趣

1 个答案:

答案 0 :(得分:2)

请参阅documentation了解putback方法:

  

istream的&安培; putback(char c);

     

放回角色

     

尝试减少当前位置   按一个字符流,使最后一个字符从中提取   流可以再次通过输入操作提取。

如果程序读取'!'字符,它会将一个'$'字符放回到流中,该字符将在下一次循环迭代中读取并打印出来。

相关问题