国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

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

2020-01-26 14:26:59
字體:
來源:轉載
供稿:網友

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 2struct 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

主站蜘蛛池模板: 嵊泗县| 鄂托克旗| 桐城市| 和林格尔县| 民乐县| 治多县| 华亭县| 吉木萨尔县| 上饶市| 广南县| 绵阳市| 上高县| 东台市| 延长县| 信宜市| 林甸县| 康保县| 商城县| 皮山县| 怀远县| 大关县| 泽州县| 丹棱县| 潜山县| 辰溪县| 四子王旗| 武城县| 开鲁县| 西乌珠穆沁旗| 华池县| 临夏县| 商水县| 台东县| 工布江达县| 鲜城| 虹口区| 涟源市| 沙坪坝区| 连南| 广汉市| 桦川县|