成块读写文件

作者在 2010-03-30 21:57:21 发布以下内容
#include<stdio.h>
main( )
{
    FILE *fp;
    int i;
    struct rec{ /*定义结构体类型*/
        char id[10];
        char name[15];
        char department[15];
    }record;
    printf("***********************************************************\n");
    printf("** This program is to show the block file input & output**\n");
    printf("***********************************************************\n");
    if( (fp=fopen("f:\\infile.txt","w"))==NULL ) /*以文本只写方式打开文件*/
    {
        printf("cannot open file");
        exit(1);
    }
    printf("please input data:\n");
    for( i=0;i<2;i++)
    {
        printf("Please input id:\n");
        scanf("%s",record.id); /*从键盘输入*/
        printf("Please input name:\n");
         scanf("%s",record.name);
        printf("Please input department:\n");
         scanf("%s",record.department);
         fwrite(&record,sizeof(record),1,fp); /* 成块写入文件*/
        /*fprintf(fp,"%s %s %s\n",record.id,record.name,record.department); /* 写入文件*/
    }
    fclose(fp); /*关闭文件*/
    if((fp=fopen("f:\\infile.txt","r"))==NULL)
    { /*以文本只读方式重新打开文件*/
        printf("cannot open file");
        exit(0);
    }
    printf("output from file:\n");
    for (i=0;i<2;i++)
    {
        fread(&record,sizeof(record),1,fp); /* 从文件成块读*/
        printf("id:%s name:%s department:%s\n",record.id,record.name,record.department); /* 显示到屏幕*/
    }
    /*从文件读入*/
   /* while (fscanf(fp,"%s %s %s\n",record.id,record.name,record.department)!=EOF)
    {
        printf("id:%s name:%s department:%s\n",record.id,record.name,record.department); /* 显示到屏幕
*/
   /* }*/
    fclose(fp); /*关闭文件*/
    scanf("%d",i);
}
 
默认分类 | 阅读 516 次
文章评论,共0条
游客请输入验证码
浏览11147次
文章分类
最新评论