这是我用于使用递归来反转字符串的代码。
我试过两种方式:
C版本按预期工作,但是当我使用C ++版本时,它不会提供任何输出并连续读取输入。
void reverse() // C++ version
{
char ch;
cin>>ch;
if(ch!='\n')reverse();
cout<<ch;
}
void reverse() // C version
{
char ch;
scanf("%c",&ch);
if(ch!='\n')reverse();
printf("%c",ch);
}
int main(void)
{
reverse();
return 0;
}
C ++代码有什么问题?
答案 0 :(得分:3)
答案 1 :(得分:1)
在您的C ++ reverse()
中,请使用cin.get(ch);
代替cin>>ch;
,因为后者不会阅读\n
。