#include<stdio.h>
#include<stdlib.h>
#include<process.h>
#define MAXTITL 40
#define MAXAUTL 40
#define MAXBKS 100
struct book{
char title[MAXTITL];
char author[MAXAUTL];
float value;
};
int main(void)
{
struct book library[MAXBKS];
int count=0;
int index;
printf("Please enter the book title:\n");
printf("Press [enter] at the start of a line to stop.\n");
while(count<MAXBKS && gets(library[count].title)!=NULL && library[count].title[0]!='\0')
{
printf("Now enter the author.\n");
gets(library[count].author);
printf("Now enter the value.\n");
scanf("%f",&library[count++].value);//the function scanf()will leave the '\n' behind and the function gets()above will catch this '\n' and result in error!
while(getchar()!='\n')//these two lines will demonish the influence of "space","tab" and "enter" and so on!
continue;
if(count<MAXBKS)
printf("Enter the next title.\n");
}
if(count>0)
{
printf("Here is the list of your books:\n");
for(index=0;index<count;index++)
printf("%s by %s:$%.2f \n",library[index].title,library[index].author,library[index].value);
}
else
printf("No books? Too bad.\n");
system("pause");
return 0;
}
结构体数据读入常出现的错误的解决办法
最新推荐文章于 2020-11-09 22:32:25 发布
