Mở 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... Cú phá
Trang 1CHƯƠNG IX
FILE
Trang 2I. Đữa file ra đĩa:
1. Mở 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 3Cú 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ở.
type: Là kiểu mở file
Trang 4“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
danh sách đổi sô]);
Chức năng: Ghi vào file
Trang 53. Đó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 6#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 7for (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
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”
Trang 82. Đọ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 kiện[, danh sách đổi số]);
3. Đóng file
Giống phần trên
Trang 9Ví 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 10for (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 11fpp=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;
}