#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-02-18 22:00:04 发布