请教,关于C的一些问题,大家进来看看(在线等)

KingI 2003-08-18 07:32:47
请看:
#include <stdio.h>
main()
{ int i,j;
if(...)
{...}
ret();
}
void ret()
{char n;
printf("...");
scanf("%c",&n);
if(n=='y') printf("...");
if(n=='n') printf("...");
}
以上程序当我执行完“void ret()”中的第一个printf后程序就停止了,提示已完成,无法进行下面的输入工作,请问高手这该怎么办?还有就是exit()函数怎么用?谢谢回答!
...全文
44 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostAdz 2003-08-19
  • 打赏
  • 举报
回复
"第一个printf后就提示已完成,不能进行scanf操作,这是为什么?请指教,谢谢。"

这和声明在什么地方没有关系的
因为你的第一个scanf接受了你的输入字符
而第2个又接受了你的回车,所以在第一个scanf后
加一个fflush(stdin);就可以把键盘缓冲区里的回车擦去
KingI 2003-08-18
  • 打赏
  • 举报
回复
谢谢大家,我再试试
leozheng 2003-08-18
  • 打赏
  • 举报
回复
#include <stdio.h>
void ret();
main()
{ int i,j;
scanf("%d%*",&i);
if(...)
{...}
ret();
}
可能是ret函数中scanf接收的是回车字符导致了这个问题。
KingI 2003-08-18
  • 打赏
  • 举报
回复
声明ret()函数
karrigan 2003-08-18
  • 打赏
  • 举报
回复
你的声明不对,这样做就没问题了
#include <stdio.h>
void ret();
main()
{ int i,j;
scanf("%d",&i);
if(...)
{...}
ret();
}
void ret()
{char n;
printf("...");
scanf("%c",&n);
if(n=='y') printf("...");
if(n=='n') printf("...");
}
madasoft 2003-08-18
  • 打赏
  • 举报
回复
main()
{ int i,j;
void ret();////??这是什么意思?
scanf("%d",&i);
if(...)
{...}
ret();
}
KingI 2003-08-18
  • 打赏
  • 举报
回复
谢谢各位,不过在我声明ret()后,只要在main()中有scanf的操作,在ret()函数中执行完第一个printf后就提示已完成,不能进行scanf操作,这是为什么?请指教,谢谢。
#include <stdio.h>
main()
{ int i,j;
void ret();
scanf("%d",&i);
if(...)
{...}
ret();
}
void ret()
{char n;
printf("...");
scanf("%c",&n);
if(n=='y') printf("...");
if(n=='n') printf("...");
}
onethousand 2003-08-18
  • 打赏
  • 举报
回复
一是在main()中要先声明void ret();
二是ret()中你通过scanf()接受了一个字母赋给了n,在下面的语句中对n的值进行判断
是y执行第一个printf;是n执行第二个。总之,只能执行一个printf.

wfeng007 2003-08-18
  • 打赏
  • 举报
回复
正常退出的话 。。。。
exit(0);
整个程序就自己结束了。。。。。
wfeng007 2003-08-18
  • 打赏
  • 举报
回复
tc2.0

在main 之前声明void ret();
就你所给出的 其他一切正常。。

如果 你没输入 y 或 n程序当然没什么反映
sevencat 2003-08-18
  • 打赏
  • 举报
回复
exit的用法:
假如是在MAIN()里面的话
return 0
与直接调用exit(0)最终结果是一样的,
因为main()的返回值基本上是直接被用到exit()里面去的.
除非特殊出错用这个函数不然不要直接用他.
goldenrock 2003-08-18
  • 打赏
  • 举报
回复
1。ret 没有声明
2。一般是 exit(0);
GhostAdz 2003-08-18
  • 打赏
  • 举报
回复
ret这个函数没有事先声明啊
或者你把它定义在main之前

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧