C语言gets函数怎么回事

#include<stdio.h>#include<string.h>#include<stdlib.h>#defineBOOKS4#defineBORROWERS10s... #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define BOOKS 4
#define BORROWERS 10
struct book
{
int number;
char title[40];
int stock;

char bnam[BORROWERS][20];
int bnum[BORROWERS];
char bsex[BORROWERS];
char bcla[BORROWERS][20];
}book[BOOKS];
struct borrow
{
char name[20];
int number;
char sex;
char cla[20];
}borrow[BORROWERS];
void main()
{
FILE *fp;
int i;

printf("Input the information of the books:\n");

for(i=0;i<BOOKS;i++)
{
printf("Book(%d)\n\tnumber:\t%d\n\ttitle:\t",i+1,i+1);
gets(book[i].title);//这个地方只有当i=0是可输入,以后都直接跳过去了,这是为什么
printf("\tstock:\t");
scanf("%d",&book[i].stock);
}
for(i=0;i<BOOKS;i++)
{
printf("BOOK(%d)\n\tnumber:\t%d\n\ttitle:\t%s\n\tstock:\t%d\n",i+1,i+1,book[i].title,book[i].stock);
}
}
展开
 我来答
xingxing123757
2012-07-19
知道答主
回答量:19
采纳率:0%
帮助的人:17.8万
展开全部
因为gets函数,这个函数会把回车当做字符,从而读入内存中
i=0时由于先出现gets,能够正常运行,由于后面的scanf函数,输入时会敲回车,这个回车就被当做字符输入到下一个gets 函数中了,所以下面就不能正常输入了
这是gets函数的性质
你可以在scanf函数后面再加个gets函数,用来接收scanf输入时要敲的回车
这样就不会影响后面的录入数据了
还有尽量不要用gets函数,它可能还有其他性质,如果不清楚就会影响程序的运行,还是用scanf吧
ducky8688
2012-07-19 · TA获得超过753个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:100万
展开全部
for(i=0;i<BOOKS;i++)
{
printf("Book(%d)\n\tnumber:\t%d\n\ttitle:\t",i+1,i+1);
gets(book[i].title);//这个地方只有当i=0是可输入,以后都直接跳过去了,这是为什么
printf("\tstock:\t");
scanf("%d",&book[i].stock); //这里输完的时候你按的回车,在下次循环的时候被gets读进去了
getchar(); //可以在这里加个函数来把回车用掉,下次循环就正常了
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2012-07-19 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5745万
展开全部
gets(book[i].title); 从标准输入 读入 一行 字符串,包括空白,行结束回车。
如果缓冲区有残留的行,则读入 残留行: 字符串,包括空白,行结束回车。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
89白海棠
2012-07-19 · TA获得超过229个赞
知道答主
回答量:44
采纳率:0%
帮助的人:15.6万
展开全部
不想看,打酱油
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LifeLearner
2012-07-19
知道答主
回答量:47
采纳率:0%
帮助的人:17.7万
展开全部
做任务
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式