CHƯƠNG IX FILE
Đ a file ra đĩa:
ữ I. ở 1. M file:
ầ ự
ộ ộ ộ ở đ ng m t
ể ổ ặ đó ho c kh i ữ ệ ồ ạ đ b sung thêm d li u.
ử ụ M c ụ đich c a ph n này là xây d ng m t file ủ ể m i ớ đ ghi thông tin lên i file đã t n t ể ở ộ Đ m m t file ta s d ng hàm
fopen()
ủ Cú pháp c a hàm nh ư sau:
FILE *fpa, *fopen(); char *path_name; char *type fpa = fopen(path_name,type);
Ch c nứ ăng:
ỉ ợ ở ở ộ Là m m t file
ể ở ộ ở
ỏ ể
ớ đư c ch ra b i path_name, v i ki u m m t file là type, khi m xong thì gán giá tr ị đó cho con tr ki u FILE. Trong đó:
ờ ợ ế ẫ đ n file ở đư c m .
ở path_name: La đư ng d n ể type: Là ki u m file
ở “w”: M file ở “a”: M file ở “r”: M file
ở đã m , ta dùng hàm
ớ ể đ ghi m i. ể ổ đ b sung. đ ể đ c.ọ 2. Ghi thông tin lên file đã m :ở ể Đ ghi thông tin lên file chu n ẩ
fprintf(); ủ Cú pháp c a hàm:
khi n[, danh sách đi u ề đ i sô]);
ỏ ể fprintf(Con tr ki u FILE, dòng ổ ể Ch c nứ ăng: Ghi vào file
3. Đóng file ệ Vi c này
ợ ờ ử ụ ệ đư c th c hi n nh s d ng hàm
ự fclose() ho c ặ fcloseall()
Cú pháp:
ỏ ể int fclose(Con tr ki u FILE)
Ho cặ
int fcloseall()
ể Ví d :ụ Vi t chế
ộ ầ ử ủ ớ ự ương trinh đ xây d ng m t file m i có c a ma
tên là Matran và ghi lên đó các ph n t ở trân a c 4x4.
#include "stdio.h" main() { FILE *fpp, *fopen(); int a[4][4]; int i,j,m; fpp=fopen("matran","w"); for (i=0;i<4;++i) for (j=0;j<4;++j) { printf("a[%d,%d]= ",i,j); scanf("%d",&m); a[i][j]=m; }
ừ file
for (i=0;i<4;++i) for (j=0;j<4;++j) fprintf(fpp,"%d\n",a[i][j]); fclose(fpp); return 0; } ọ II. Đ c vào t 1. M fileở ử ụ
ầ ỉ
S d ng hàm fopen() ố Cú pháp hoàn toàn gi ng ph n trên ch khác là phân type là “r”
2. Đ c thông tin t
m t file vào b nh
ộ ở ộ ớ ừ ộ ọ ừ Đ ể đ c thông tin t ớ đã m vào b nh ta file
ọ dùng hàm chu n:ẩ
fscanf()
Cú pháp:
ỏ ể fscanf(Con tr ki u FILE, dòng đi u ề
ổ ố danh sách đ i s ]);
ki n[, ệ 3. Đóng file ầ ố Gi ng ph n trên.
Ví d :ụ
ở ụ Vi ế ạ t l i ch ương trình ví d trên , sau đó đ c ọ
file và in ra màn hình.
#include "stdio.h" main() { FILE *fpp, *fopen(); int a[4][4]; int i,j,m; fpp=fopen("matran","w");
for (i=0;i<4;++i) for (j=0;j<4;++j) { printf("a[%d,%d]= ",i,j); scanf("%d",&m); a[i][j]=m; } for (i=0;i<4;++i) for (j=0;j<4;++j) fprintf(fpp,"%d\n",a[i][j]); fclose(fpp);