关于C语言的文件按格式输入输出的具体实践

在大一的时候,做C语言的大作业,题目是图书管理系统(烂大街的题目)

为了能拿高分必须要高一点的分数,所以必须要含一点别人不太会用的东西。在当时就把这个点戳在了文件类型上。

把空文本作为程序的数据库,我觉得这可能是初步开发阶段的时候最好的数据存储读取的处理方式了。

文件类型不做过多介绍

最基本的几条语句

 

FILE *fp;
fp=fopen(“book.dat”,”a+”);
if(NULL==fp)
{
printf(“\nERROR”);
exit(-1);
}

关于文件的存储,在TXT里我是采用“|”和“_”来分割的。一开始对于占位符和分隔符的读取控制一直都做得有问题,查了好几天的百度才慢慢摸透

存储格式如下(代码的使用可以进行比对)

1_11_1_……………….

fprintf(fp,”%s_%s_%s_%s_%s_%s_%.2f_%d_\n”,sBook[i].loginnum,sBook[i].bookname,sBook[i].author,sBook[i].publisher,sBook[i].pbtime,sBook[i].classfy,sBook[i].price,sBook[i].left);

相对的,读取代码如下:

do
{
++i;
}
while(fscanf(fp,”%[^_]_%[^_]_%[^_]_%[^_]_%[^_]_%[^_]_%f_%d_\n”,sBook[i].loginnum,sBook[i].bookname,sBook[i].author,sBook[i].publisher,sBook[i].pbtime,sBook[i].classfy,&sBook[i].price,&sBook[i].left)!=EOF);

由此可知每一个%[^_]都代表了使用“_”所分割出来需要读取的内容。

依次类推,这样C语言文件按分隔符读取就没什么问题了。

3 thoughts on “关于C语言的文件按格式输入输出的具体实践

发表评论

电子邮件地址不会被公开。 必填项已用*标注