免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: senfar
打印 上一主题 下一主题

[函数] 为什么getchar()在一个函数结尾用了会不执行呢? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-12-27 13:08 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

这样的吗?不知道哦,不过还有一个问题就是
struct student
{int       num;
  char    name[20];
  double   cla;
  char    sex;------------------------->;?
  floact  mat;
  ...
}
struct student *input(struct student *head)
{double x;
  ...
  gotoxy(34,i);
  scanf("%d",&x);p1->;cla=x;
  gotoxy(42,i);
  scanf("%d",&p1->;sex);-------------------------->;这个语句不执行(换 了%s之后就可以,怎么会这样的?,我也只有将上面sex变为sex[1],呵呵)
  ...
}
为什么要数组才行的呢?

论坛徽章:
0
12 [报告]
发表于 2003-12-28 18:57 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

[quote]原帖由 "bjf"]我也以为在getchar()之前加一句fflush(stdin)可以解决问题,但是实际情况不是这样子,下面是我的一个小测试程序,getchar()总是自动返回10,那是scanf留下来的回车符。[/quote 发表:

我试了你的程序,没有任何问题呀。我是sco openserver 5的。
加了fflush(stdin)就可以,去掉fflush(stdin)就不行,很正常呀。

论坛徽章:
0
13 [报告]
发表于 2003-12-28 19:01 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

原帖由 "senfar"]这个语句不执行(换 了%s之后就可以,怎么会这样的?,我也只有将上面sex变为sex[1 发表:
,呵呵)}
为什么要数组才行的呢?

char型的要用%c来打印,int型的才用%d。

论坛徽章:
0
14 [报告]
发表于 2003-12-28 20:57 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

啊,对不起了
打错啦,我原来是%c的,但是不行,我只能用%s了.
这是什么原因呢?

论坛徽章:
0
15 [报告]
发表于 2003-12-28 21:14 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

不同的文件是不是要定义多个指针的呢?这些指针是怎么连接的,是打开文件就可以还是调用他们的头地址,或者是打开文件把fp=函数里定义的指针呀?即fp=p1

论坛徽章:
0
16 [报告]
发表于 2003-12-28 22:29 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

fclose(fp);
return(head);--------------- 为什么会警告  两者都返回和返回的值使用在 del 函数中的呢?
fp=fopen("file","r+";
p1=fp;-----------------------我已经定义了p1,为什么警告 指针转换后指向其它类型在 print 函数中
要怎么样解决的?

论坛徽章:
0
17 [报告]
发表于 2003-12-29 08:52 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

原帖由 "forest077" 发表:

我试了你的程序,没有任何问题呀。我是sco openserver 5的。
加了fflush(stdin)就可以,去掉fflush(stdin)就不行,很正常呀。


可是在我的系统上这个程序不行,尽管加了fflush(stdin),我的系统是Linux

论坛徽章:
0
18 [报告]
发表于 2003-12-29 09:39 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

[quote]原帖由 "bjf"]可是在我的系统上这个程序不行,尽管加了fflush(stdin),我的系统是Linux[/quote 发表:

难道两个系统fflush的实现方法不一样吗?有谁可以指教?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
19 [报告]
发表于 2003-12-30 16:11 |只看该作者

为什么getchar()在一个函数结尾用了会不执行呢?

http://bbs.chinaunix.net/forum/viewtopic.php?t=151480

linux下可以用
setbuf(stdin, NULL);
也可以用
fpurge。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP