<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    詳解C語言格式化讀寫文件

    時間:2025-05-11 16:50:10 C語言 我要投稿
    • 相關推薦

    詳解C語言格式化讀寫文件

      本文是百分網小編搜索整理的關于詳解C語言格式化讀寫文件,供參考閱讀,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!

      fscanf() 和 fprintf() 函數與前面使用的 scanf() 和 printf() 功能相似,都是格式化讀寫函數,兩者的區別在于 fscanf() 和 fprintf() 的讀寫對象不是鍵盤和顯示器,而是磁盤文件。

      這兩個函數的原型為:

      int fscanf ( FILE *fp, char * format, ... );

      int fprintf ( FILE *fp, char * format, ... );

      fp 為文件指針,format 為格式控制字符串,... 表示參數列表。與 scanf() 和 printf() 相比,它們僅僅多了一個 fp 參數。例如:

      FILE *fp;

      int i, j;

      char *str, ch;

      fscanf(fp, "%d %s", &i, str);

      fprintf(fp,"%d %c", j, ch);

      fprintf() 返回成功寫入的字符的個數,失敗則返回負數。fscanf() 返回參數列表中被成功賦值的參數個數。

      【示例】用 fscanf 和 fprintf 函數來完成對學生信息的讀寫。

      #include<stdio.h>

      #define N 2

      struct stu{

      char name[10];

      int num;

      int age;

      float score;

      } boya[N], boyb[N], *pa, *pb;

      int main(){

      FILE *fp;

      int i;

      pa=boya;

      pb=boyb;

      if( (fp=fopen("D:\\demo.txt","wt+")) == NULL ){

      printf("Cannot open file, press any key exit!");

      getch();

      exit(1);

      }

      //從鍵盤讀入數據,保存到boya

      printf("Input data:\n");

      for(i=0; i<N; i++,pa++){

      scanf("%s %d %d %f", pa->name, &pa->num, &pa->age, &pa->score);

      }

      pa = boya;

      //將boya中的數據寫入到文件

      for(i=0; i<N; i++,pa++){

      fprintf(fp,"%s %d %d %f\n", pa->name, pa->num, pa->age, pa->score);

      }

      //重置文件指針

      rewind(fp);

      //從文件中讀取數據,保存到boyb

      for(i=0; i<N; i++,pb++){

      fscanf(fp, "%s %d %d %f\n", pb->name, &pb->num, &pb->age, &pb->score);

      }

      pb=boyb;

      //將boyb中的數據輸出到顯示器

      for(i=0; i<N; i++,pb++){

      printf("%s %d %d %f\n", pb->name, pb->num, pb->age, pb->score);

      }

      fclose(fp);

      return 0;

      }

      運行結果:

      Input data:

      Tom 2 15 90.5↙

      Hua 1 14 99↙

      Tom  2  15  90.500000

      Hua  1  14  99.000000

      打開 D:\\demo.txt,發現文件的內容是可以閱讀的,格式非常清晰。用 fprintf() 和 fscanf() 函數讀寫配置文件、日志文件會非常方便,不但程序能夠識別,用戶也可以看懂,可以手動修改。

      如果將 fp 設置為 stdin,那么 fscanf() 函數將會從鍵盤讀取數據,與 scanf 的作用相同;設置為 stdout,那么 fprintf() 函數將會向顯示器輸出內容,與 printf 的作用相同。例如:

      #include<stdio.h>

      int main(){

      int a, b, sum;

      fprintf(stdout, "Input two numbers: ");

      fscanf(stdin, "%d %d", &a, &b);

      sum = a + b;

      fprintf(stdout, "sum=%d\n", sum);

      return 0;

      }

      運行結果:

      Input two numbers: 10 20↙

      sum=3036.html

    【詳解C語言格式化讀寫文件】相關文章:

    C語言項目中.h文件和.c文件的關系詳解10-01

    C語言文件操作函數freopen詳解07-13

    C語言以數據塊的形式讀寫文件實例代碼10-09

    C語言文件操作解析詳解及實例代碼10-02

    C語言文件08-28

    C語言中文件操作詳解及實例代碼08-24

    詳解C語言文件操作中fgets與fputs函數10-08

    C語言的文件概念07-18

    C語言的使用的詳解09-17

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人