C语言中的文件格式化读写函数:fprintf和fscanf


       转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/99

        学过C语言的,对printf和scanf函数肯定不会陌生(如果不知道,那说明你就没学过C语言),这两个函数分别是格式化输出和格式化输入函数,按照指定的格式输入数据或者在屏幕上输出数据。

  fprintf函数和fscanf函数和printf和scanf相比,就是多了个f前缀,这个f当然就是指的file,也就是文件了,后两者是操作的对象是终端设备,前者则是针对磁盘文件的操作,因此fprintf函数和fscanf函数就是了C语言中文件的格式化输入输出函数。

  学C语言,老师就要布置作业的吧,作业做什么呢?一般都是做学生成绩管理系统吧,那就要设计个数据结构保存学生的信息吧,姓名、学号、成绩等等的,用什么好呢,那当然是结构体struct了。

C语言: 知蚁博客
struct student
{
    char    chName [ 20 ];    //姓名
    int    nID;        //学号
    float    fScores [ 3 ];    //3门课的成绩
};

  上面就是一个比较简单的用于保存学生成绩信息的结构体类型了,其中包括学生的姓名、学号以及三门课的成绩,下面知蚁就介绍如何使用fprintf函数和fscanf函数来读写这种类型的数据。

fprintf函数和fscanf函数调用方式

fprintf(文件结构指针,格式字符串,输出表列);
fscanf(文件结构指针,格式字符串,输出表列);

  两个函数的参数都一样,怎么写到文件中的就怎么读进来,还是比较方便的,用过printf函数的应该都知道上面的函数怎么用的吧(不知道就赶紧找资料吧,(*^__^*) 嘻嘻……),唯一不同的是,这里多了个文件结构指针的参数,看过知蚁前面几篇文章的,应该对这个比较熟悉了。

fprintf函数和fscanf函数示例程序

下面的示例程序包括fprintf写入文件、fscanf读取文件以及printf输出到屏幕等操作。

C语言: 知蚁博客
void main()
{
    FILE * pWrite , * pRead;
    struct student tStu , tStu2;
    char * pName = “letuknowit”;

    pWrite=fopen(“stu_scores.txt”,“w”);
    if(NULL == pWrite)
    {
        return;
    }

    //初始化结构体信息,用于写入文件
    memcpy(tStu.chName,pName,20);
    tStu.nID = 1;
    tStu.fScores[0] = 89.0;
    tStu.fScores[1] = 87.0;
    tStu.fScores[2] = 88.0;

    //写入数据到文件中
    fprintf(pWrite,“%d %s %f %f %f\n,tStu.nID,tStu.chName,tStu.fScores[0],tStu.fScores[1],tStu.fScores[2]);
    fclose(pWrite);

    pRead=fopen(“stu_scores.txt”,“r”);
    if(NULL == pRead)
    {
        return;
    }
    //从文件中读取数据(主要下面参数中的&)
    fscanf(pRead,“%d %s %f %f %f\n,&tStu2.nID,tStu2.chName,&tStu2.fScores[0],&tStu2.fScores[1],&tStu2.fScores[2]);
    fclose(pRead);

    //打印读取的数据到屏幕上
    printf(“%d %s %.1f %.1f %.1f\n,tStu2.nID,tStu2.chName,tStu2.fScores[0],tStu2.fScores[1],tStu2.fScores[2]);
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值