标题:这里可以不需要fflush函数吗?
只看楼主
yzc271656088
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-6-29
 问题点数:0 回复次数:4 
这里可以不需要fflush函数吗?
zhuce()/*注册*/ 
{ 
    struct bank *p; 
    int i=0,k=0,judge1,judge2;
    char name[30];
char sex,ch;
char sh[18];
int n;
p=(struct bank*)malloc(sizeof(struct bank));/*给p分配内存*/
    welcome2();
    printf("请输入您的名字(纯英文):");
gets(name);
printf("请输入您的性别(男:1 女2):");
fflush(stdin); 
    scanf("%c",&sex);
    fflush(stdin); 
printf("请输入您的身份证号码:");
gets(sh);
for(n=0;n<strlen(name);n++)/*判断输入信息是否正确*/
{
&nbsp;&nbsp;&nbsp;if(name[n]>='0'&&name[n]<='9')
&nbsp;&nbsp;&nbsp;{&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;printf("您输入的名字有误!\n");
&nbsp;&nbsp;&nbsp;&nbsp;printf("\n请选择:按1返回主页面.&nbsp;按任意键退出:");
&nbsp;&nbsp;&nbsp;&nbsp;fflush(stdin);
&nbsp;&nbsp;&nbsp;&nbsp;scanf("%c",&ch);
&nbsp;&nbsp;&nbsp;&nbsp;fflush(stdin);
&nbsp;&nbsp;&nbsp;&nbsp;if(ch=='1'){system("cls");main();}
&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;exit(0);
&nbsp;&nbsp;&nbsp;}
}
都是类似的代码 问下输入后可以不需要这个缓冲区吗 (不明白这个缓冲区~)
搜索更多相关主题的帖子: struct name printf 输入 stdin 
2017-06-29 15:13
yzc271656088
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-6-29
得分:0 
复制的时候没注意 ;&nbsp;这个是空格
2017-06-29 15:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
fflush(stdin) 这本身就是经典的错误用法。
2017-06-29 15:42
yzc271656088
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-6-29
得分:0 
回复 3楼 rjsp
那意思就是可以不用这个了?
2017-06-29 16:11
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
fflush(stdin),stdin就是标准输入,fflush()是一个对C标准的扩充,此函数仅适用于部分编译器(如VC6)。
也可以用如下代码代替:
int c;
while((c = getchar()) != '\n' && c != EOF);

2017-07-01 07:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479048-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049749 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved