C语言文件读取fscanf()

NeDong 2012-03-16 09:59:49
这是一个用文件记录,输出图书信息的代码,只能输出一部分,怎样循环能全部打印出来呀


#include <stdio.h>
#include <stdlib.h>
#include <string.h>


#define MAXSIZE 30


const char *fname = "bookinfo.txt";


//记录图书信息结构体
typedef struct book
{
char author[MAXSIZE];
char title[MAXSIZE];
char publish_house[MAXSIZE];
}BOOK, *Book;


int Input(const char *fname);//录入信息
int Show(const char *fname);//显示信息


main()
{
Input(fname);
Show(fname);
}


int Input(const char *fname)
{
Book P_book = NULL;
char ch = 'Y';
FILE *fpw = NULL;

while('Y' == ch || 'y' == ch)
{
P_book = (Book)malloc(sizeof(BOOK));

scanf("%s",P_book->author);
scanf("%s",P_book->title);
scanf("%s",P_book->publish_house);

fpw = fopen(fname,"a");

fprintf(fpw,"%s\n%s\n%s\n",
P_book->author,P_book->title,P_book->publish_house);

fclose(fpw);
free(P_book);

printf("go on?(y or n):");
getchar();
ch = getchar();
}
return 1;
}


int Show(const char *fname)
{
char book[3][MAXSIZE] = {0};
FILE *fpr = NULL;

fpr = fopen(fname,"r");
fscanf(fpr,"%s\n%s\n%s\n",book[0],book[1],book[2]);
printf("%s %s %s\n\n",book[0],book[1],book[2]);

fclose(fpr);
}
...全文
917 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
天台的故事 2012-03-16
  • 打赏
  • 举报
回复
用fseek()函数??可以吗
NeDong 2012-03-16
  • 打赏
  • 举报
回复
feof()
NeDong 2012-03-16
  • 打赏
  • 举报
回复
用fseek()函数??可以吗
NeDong 2012-03-16
  • 打赏
  • 举报
回复
Show函数有问题,就是在Input 函数中输入多组数据,Show 函数只能显示一组
lanmeng521131485 2012-03-16
  • 打赏
  • 举报
回复
到底是哪里的问题,指出一下啊!!看不太明白!!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧