cin.putback问题 (C++)

来源:百度知道 编辑:UC知道 时间:2024/06/26 04:58:41
关于cin.putchar,不要偏题谢谢。

#include <iostream>
using namespace std;
int main()
{ char ch;
while((ch=cin.get())!='\n')
{
if(ch=='*')
{
cin.putback('$'); //怎样让$替换*,而不是插入其中?
cout<<ch;
}
else
cout<<ch;
}

cout<<endl;
//while(1);
system("pause");
}

你的$已经替换了*,之所以输出有*是因为你已经在putback前读进了*并且putback后没有再次读入就已经输出了。
应该是这样:

while((ch=cin.get())!='\n')
{
if(ch=='*')
{
cin.putback('$'); //怎样让$替换*,而不是插入其中?
ch=cin.get();//这样就不输出*了
cout<<ch;
}
else
cout<<ch;
}