標籤:fclose 使用方法 螢幕 空值 ret 考試成績 輸入 getc 定義
例題一、把短句 “Hello World!” 儲存到磁碟檔案f1.txt中。
#include <stdio.h>#include <stdlib.h>int main(){ FILE *fp; /* 定義檔案指標*/ if( ( fp = fopen("f1.txt", "w") ) == NULL){ /* 開啟檔案 */ printf("File open error!\n"); exit(0); } fprintf( fp, "%s", "Hello World! " ); /* 寫檔案 */ if( fclose( fp ) ){ /* 關閉檔案 */ printf( "Can not close the file!\n" ); exit(0); } return 0;}
用檔案指標指示檔案緩衝區中具體讀寫的位置
FILE *fp;
自訂類型(typedef):
1、將C語言中的已有類型(包括已定義過的自訂類型)重新命名
2、新的名稱可以代替已有資料類型
3、常用於簡化對複雜資料類型定義的描述
typedef <已有類型名> <新類型名>;
typedef int INTEGER; int i, j; <====> INTEGER i, j; typedef int* POINT; int* p1; <====> POINT p1;
自訂類型(typedef)的使用方法
1、定義變數 int i
2、變數名?新類型名 int ? INTEGER
3、加上 typedef typedef int INTEGER
4、用新類型名定義變數 INTEGER i;
int NUM[10]
typedef int NUM[10]
NUM a <===> int a[10]
例題二
已知一個資料檔案f.txt中儲存了5個學生的電腦等級考試成績,包括學號、姓名和分數,檔案內容如下,請將檔案的內容讀出並顯示到螢幕中。
301101 張文 91
301102 陳慧 85
301103 王衛東 76
301104 鄭偉 69
301105 郭溫濤 55
#include "stdio.h"int main(void){ FILE * fp; /* 定義檔案指標*/ long num; char stname[20]; int score; if((fp = fopen("f.txt", "r")) == NULL){ /* 開啟檔案 */ printf("File open error!\n"); exit(0); } while( !feof(fp) ){ fscanf(fp, "%ld%s%d", &num, stname, &score); printf("%ld %s %d\n", num, stname, score); }; if( fclose(fp) ){ /* 關閉檔案 */ printf( "Can not close the file!\n" ); exit(0); }}
if((fp = fopen("f.txt", "r")) == NULL){ printf("File open error!\n"); exit(0);}fopen("檔案名稱","檔案開啟檔案")函數fopen() 的傳回值1、執行成功,則返回包含檔案緩衝區等資訊的FILE型地址,賦給檔案指標fp2、不成功,則返回一個NULL(空值) exit(0):關閉所有開啟的檔案,並終止程式的執行 參數0表示程式正常結束;非0參數通常表示不正常的程式結束
fp = fopen("f.txt", "r")檔案開啟檔案參數表
檔案讀寫與開啟檔案
if 讀檔案 指定的檔案必須存在,否則出錯;if 寫檔案(指定的檔案可以存在,也可以不存在) if 以 "w" 方式寫 if 該檔案已經存在 原檔案將被刪去重建立立; else 按指定的名字建立一個檔案; else if 以 "a" 方式寫 if 該檔案已經存在 寫入的資料將被添加到指定檔案原有資料的後面,不會刪去原來的內容; else 按指定的名字建立一個檔案(與“w”相同);if 檔案同時讀和寫 使用 "r+"、"w+" 或 "a+" 開啟檔案
關閉檔案
if( fclose(fp) ){ printf( "Can not close the file!\n" ); exit(0);}fclose(檔案指標)把緩衝區中的資料寫入磁碟扇區,確保寫檔案的正常完成釋放檔案緩衝區單元和FILE結構體,使檔案指標與具體檔案脫鉤。函數fclose() 的傳回值返回0:正常關閉檔案返回非0:無法正常關閉檔案
檔案複製
已知一個文本資料檔案f1.txt,請將該檔案複製一份,儲存為f2.txt。
建立一個文字檔f1.txt,將該檔案與來源程式放在同一目錄下,執行程式,觀察結果。
#include <stdio.h>int main(void){ FILE *fp1,*fp2; char c; if(( fp1 = fopen( "f1.txt", "r" )) == NULL) { printf(" File open error!\n" ); return 0; } if(( fp2 = fopen( "f2.txt", "w" )) == NULL) { printf(" File open error!\n" ); return 0; } while( !feof( fp1 ) ){ c = fgetc( fp1 ); fputc(c, fp2); } fclose( fp1 ); fclose( fp2 ); return 0;}
開啟多個檔案
if((fp1 = fopen(f1.dat, "r")) == NULL){ printf("File open error!\n"); exit(0);}if((fp2=fopen("f2.dat", "w")) == NULL){ printf("File open error!\n"); exit(0);}C語言允許同時開啟多個檔案不同的檔案對應不同的檔案指標不允許同一個檔案在關閉前再次開啟
C語言中資料輸入輸出到檔案操作freopen()函數(1)