gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:43:02 26 4
gpt4 key购买 nike

我是编程新手,正在查看这段代码,试图了解它是如何工作的。我的理解是,程序在每次运行 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;
}

输出:输入一个短语:Now!is#the!time#for!fun#!现在$是$fun$的$时间$

最佳答案

请参阅documentation对于 putback 方法:

istream& putback (char c);

Put character back

Attempts to decrease the current location in the stream by one character, making the last character extracted from the stream once again available to be extracted by input operations.

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

关于c++ - 需要有关 cin.get 和 cin.putback 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com