本帖最后由 天蚕飞 于 2014-8-21 14:44 编辑
楼主,不知道这是你自己的程序还是哪找的,这程序写的不咋样;这 程序应该是要完成从键盘录入字符,遇到回车符结束输入,然后将录入的字符输出到屏幕;但是不知道为什么要用个递归,这程序运行不是问题,但是这除了能运行和遇到回车结束应该没有用了;从键盘录入数据通常会用while循环,当然其他循环也行;提供两个方案你看下:
1、用while
void str()
{
char ch;
while((ch = getchar()) != '\n')//遇到回车进入循环,否则退出while循环
{
putchar(ch);
}
}
2、还是用你的递归
void str( )
{
char ch;
if((ch = getchar()) != '\n')//遇到回车结束输入
{
putchar(ch);
str(); //进入下一次的输入
}
}
不建议使用第二种方法。还有给个建议,所有的代码块包括if哪怕有一句都应该用{}括起来,避免变量作用域混乱。 |