CHƯƠNG IXFILE 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 đó hoặc khởi động một file đã tồn tại để bổ sung thêm dữ liệu.. Để mở một file ta sử dụng hàm fopen... C
Trang 1CHƯƠNG IX
FILE
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 đó hoặc khởi động một file đã tồn tại để bổ sung thêm dữ liệu
Để mở một file ta sử dụng hàm
fopen()
Trang 2Cú 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 đó:
path_name: La đường dẫn đến file
được mở
Trang 3“w”: Mở file để ghi mới.
“a”: Mở file để bổ sung
“r”: Mở file để đọc
2. Ghi thông tin lên file đã mở:
Để ghi thông tin lên file đã mở, ta dùng
hàm chuẩn
fprintf();
Cú pháp của hàm:
fprintf(Con trỏ kiểu FILE, dòng điều
khiển[, danh sách đổi sô]);
Chức năng: Ghi vào file
Trang 43. Đó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ó tên là Matran và ghi lên đó các phần tử của ma trân a cở 4x4
Trang 5#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;
}
Trang 6for (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ừ 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”
Trang 72. Đọc thông tin từ một file vào bộ nhớ
Để đọc thông tin từ file đã mở vào bộ nhớ ta dùng hàm chuẩn:
fscanf()
Cú pháp:
fscanf(Con trỏ kiểu FILE, dòng điều
3. Đóng file
Giống phần trên
Trang 8Ví 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");
Trang 9for (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);
Trang 10fpp=fopen("matran","r"); for (i=0;i<4;++i)
{
for (j=0;j<4;++j)
{
fscanf(fpp,"%d",&m); printf("%d ",m);
}
printf("\n");
}
getch();
return 0;
}