zoukankan      html  css  js  c++  java
  • [转]C语言中的文件格式化读写函数:fprintf和fscanf

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

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

    struct student
    {
        char    chName[20];    //姓名
        int    nID;        //学号
        float    fScores[3];    //3门课的成绩
    };

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

    fprintf函数和fscanf函数调用方式

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

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

    fprintf函数和fscanf函数示例程序

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

    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]);
    }

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

  • 相关阅读:
    11、序列比对
    10、RNA-seq for DE analysis training(Mapping to assign reads to genes)
    9、IPA通路分析相关网页教程
    3、perl进阶
    8、Transcriptome Assembly
    7、RNAseq Downstream Analysis
    Microsoft dynamic 批量更新
    c# datagridview 相关操作。
    $.ajax 提交数据到后台.
    c# Datatable
  • 原文地址:https://www.cnblogs.com/woshitianma/p/2839194.html
Copyright © 2011-2022 走看看