1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học đại cương: Chương 6 - Nguyễn Duy Hiệp

32 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Tin học đại cương: Chương 6 cung cấp những kiến thức về File. Nội dung trình bày trong chương này gồm có: Các thao tác cơ bản, các chế độ mở File, đọc ghi File bằng string, hàm vào ra chuẩn với file. Mời các bạn cùng tham khảo.

6 File Nội dung  File văn  Các chế độ mở file văn  Vào với file văn 6.1 Các thao tác File  Màn hình máy tính có khả hiển thị hữu hạn  Bộ nhớ máy tính có dung lượng nhỏ, liệu lưu nhớ bị chương trình kết thúc tắt máy  làm để lưu liệu với kích thước lớn ? Làm để ta không cần nhập lại liệu chạy chương trình?  Giải pháp : lưu trữ liệu file nhớ thứ cấp (bộ nhớ ngoài)  Cách tổ chức liệu đĩa:     Dữ liệu tổ chức thành file thư mục Dữ liệu lưu trữ dạng nhị phân Cách lưu trữ liệu nhị phân khác hệ thống khác Hệ điều hành quản lý việc lưu trữ liệu, chương trình C sử dụng hàm viết cho hệ thống khác để thực vào liệu 6.1 Các thao tác  Các thao tác với file:       Tạo file Mở file có Đọc liệu từ file Ghi liệu file Di chuyển đến vị trí file (seeking) Đóng file  VD Chương trình mở file data.dat nằm ổ đĩa C hiển thị nội dung file hình 6.1 Các thao tác /* Hiển thị nội dung file data.dat hình */ # include "stdio.h" int main(void) { FILE *fp ; char ch ; fp = fopen ( "C:\\data.dat", "r" ) ; { ch = fgetc ( fp ) ; if (ch != EOF) printf ( "%c", ch ) ; } while(ch != EOF); fclose ( fp ) ; return 0; } 6.1 Các thao tác  Mở file: để đọc (hoặc ghi) file trước hết cần mở file  Dùng hàm fopen() với tham số :  Tên file (và đường dẫn)  Xâu tham số (VD Để đọc “r”, để ghi “w”)  Các thao tác thực mở file chế độ “r” Tìm file đĩa Nạp file từ đĩa vào nơi nhớ (gọi buffer) Tạo trỏ char trỏ vào ký tự buffer 6.1 Các thao tác 6.1 Các thao tác  Khi đọc thành công fopen() trả thông tin chứa cấu trúc FILE, fopen() trả địa cấu trúc  Phải khai báo biến trỏ kiểu FILE để chứa địa trả về: FILE *tên_biến_file; VD FILE *fp;  Cấu trúc FILE định nghĩa stdio.h 6.2 Các chế độ mở File Tham số Tác dụng Khả “r” Tìm file, có nạp vào nhớ trả trỏ trỏ vào ký tự đầu tiên, ngược lại trả NULL Đọc liệu từ file “w” Tìm file, tồn bị ghi đè, khơng tạo file Trả NULL bị lỗi thực Ghi liệu vào file “a” Tìm file, tồn nạp nội dung vào nhớ, trỏ file trỏ vào ký tự cuối Nếu file chưa tồn tạo file Trả NULL lỗi thực Ghi thêm liệu vào cuối file 6.2 Các chế độ mở File Tham số Tác dụng Khả “r+” Tìm file, có nạp vào nhớ Đcọ nội dung cũ, thêm trả trỏ trỏ vào ký tự đầu tiên, nội dung mới, sửa đổi ngược lại trả NULL nội dung cũ “w+” Tìm file, tồn bị ghi Ghi nội dung vịa đè, khơng tạo file file, đọc lại, sửa đổi nội Trả NULL bị lỗi thực dung vừa ghi “a+” Tìm file, tồn nạp nội dung vào nhớ, trỏ file trỏ vào ký tự cuối Nếu file chưa tồn tạo file Trả NULL lỗi thực Đọc nội dung cũ, thêm nội dung vào cuối file (không thể sửa đổi nội dung cũ) 6.3 Đọc ghi File string 6.3 Đọc ghi File string  Trong nhiều trường hợp, đọc ghi với xâu ký tự hiệu đọc ký tự  Đọc xâu : fgets(tên_biến,độ_dài,tên_biến_file); VD fgets(str, 80, fp); Khi đọc đến cuối file, đọc tiếp giá trị nhận NULL  kiểm tra cuối hết file kiểm tra giá trị NULL  Ghi xâu : fputs(biến_xâu, tên_biến_file); 6.3 Đọc ghi File string  VD1 Chương trình nhập xâu ký tự từ bàn phím ghi vào file FILE *fp ; char s[81] ; fp = fopen ("C:\\POEM.TXT", "w") ; if ( fp !=NULL) { printf ("Nhap dong tiep theo:\n" ) ; while (strlen(gets(s)) > ) { fputs (s, fp) ; fputs ("\n", fp) ; } fclose(fp) ; } else printf("Co loi tao file.\n"); 6.3 Đọc ghi File string  VD Đọc nội dung file hiển thị hình FILE *fp ; char s[81] ; fp = fopen ("C:\\POEM.TXT", "r") ; if ( fp !=NULL) { while(fgets(s, 80, fp) != NULL) printf("%s", s) ; fclose(fp) ; } else printf("Co loi mo file.\n"); 6.4 Đọc ghi File hàm vào 6.4 Hàm vào chuẩn với file  Làm để đọc/ghi liệu có kiểu khác với file? Làm để đọc/ghi liệu số?  Hàm vào với file thư viện chuẩn : fprintf() fscanf(), cách dùng giống với hàm vào với hình bàn phím printf(), scanf()  VD: fprintf(fp,"%s %d %f\n", name, age, bs); fscanf(fp,"%s %d %f", name, &age, &bs ); 6.4 Hàm vào chuẩn với file  Ví dụ Đọc vào từ bàn phím điểm thi cá thành viên lớp ghi file # include "stdio.h" #include int main(void) { FILE *fp ; char hoTen[51]; float diemThi; char traLoi; fp = fopen ( "C:\\diemThi.txt", "w" ) ; if(fp!=NULL) { { printf("Nhap ho ten, diem tieo theo\n"); printf("Ho ten: "); scanf("%s",hoTen); printf("diem thi: "); scanf("%f",&diemThi); fprintf(fp,"%s %f\n",hoTen,diemThi); printf fflush traLoi fflush ("Nhap them (Y/N): "); (stdin); = getchar(); (stdin); } while(traLoi=='Y' ||traLoi=='y'); fclose (fp) ; } else printf("Co loi mo file.\n"); return 0; } 6.4 Hàm vào chuẩn với file  VD Đọc lại nội dung file điểm thi in hình FILE *fp ; char hoTen[51]; float diemThi; fp = fopen ( "C:\\diemThi.txt", "r" ) ; if(fp!=NULL) { while ( fscanf ( fp, "%s %f", hoTen, &diemThi ) != EOF ) printf ( "\n%s %f", hoTen, diemThi) ; fclose (fp) ; } else printf("Co loi mo file.\n"); 6.4 Hàm vào chuẩn với file  Vào/ra file có định dạng fprintf(pfile, "%12d%12d%14f", num1, num2, fnum1); fscanf(pfile, "%12d%12d%14f", &num1, &num2, &fnum1);  Cách định dạng vào/ra với file giống với cách định dạng đọc liệu hiển thị hình Một số hàm xử lý file  Đổi tên file int rename(const char *oldname, const char *newname); if(rename( "C:\\temp\\myfile.txt", "C:\\temp\\myfile_copy.txt")) printf("Failed to rename file."); else printf("File renamed successfully.");  Ghi nội dung nhớ đệm file: fflush() VD fflush(fp);  Xóa file: remove() VD remove(“C:\\pfile.txt"); stdin, stdout, stderr  Khi chương trình C thực hiện, có file từ động mở hệ thống để sử dụng cho chương trình : stdin, stdout, stderr  Các hàm vào chuẩn nhận đầu vào từ stdin (mặc dù không tham số này) VD dùng hàm fscanf() để đọc từ stdin giống hàm scanf() fscanf(stdin, "%i",&x); scanf("%i",&x);   Tương tự dùng fprintf() để đưa đầu chuẩn – stdout (mặc định hình) fprintf(stdout, "x=%i",x);  printf("x=%i",x);  stderr file lỗi chuẩn, thường noi ghi lỗi chương trình fprintf (stderr, "Loi mo file.\n"); Hàm exit  Trong số tình ta bắt buộc phải khỏi chương trình thực (vd phát có lỗi)  Chương trình bình thường dừng thực hết lện hàm main gặp return  Để thoát khỏi chương trình vị trí ta dùng exit() exit(n); n: trạng thái dừng (thường mã lỗi) if ( (inFile = fopen (file, "r")) == NULL ) { fprintf (stderr, "Loi mo file %s.\n", file); exit (EXIT_FAILURE); } ... vào nơi nhớ (gọi buffer) Tạo trỏ char trỏ vào ký tự buffer 6. 1 Các thao tác 6. 1 Các thao tác  Khi đọc thành công fopen() trả thông tin chứa cấu trúc FILE, fopen() trả địa cấu trúc  Phải khai... "cannot open file" ) ; exit( ) ; } 6. 1 Các thao tác Đọc nội dung từ FILE  Đọc ký tự trỏ file : fgetc() ch=fgetc(fp);  FILE đánh dấu kết thúc ký tự đặc biệt EOF (end-of-file) (được định nghĩa stdio.h)... lỗi chuẩn, thường noi ghi lỗi chương trình fprintf (stderr, "Loi mo file. "); Hàm exit  Trong số tình ta bắt buộc phải khỏi chương trình thực (vd phát có lỗi)  Chương trình bình thường dừng

Ngày đăng: 02/10/2022, 14:16

Xem thêm:

HÌNH ẢNH LIÊN QUAN

và hiển thị nội dung của file ra màn hình. - Bài giảng Tin học đại cương: Chương 6 - Nguyễn Duy Hiệp
v à hiển thị nội dung của file ra màn hình (Trang 6)
/* Hiển thị nội dung file data.dat ra màn hình. */ # include "stdio.h"  - Bài giảng Tin học đại cương: Chương 6 - Nguyễn Duy Hiệp
i ển thị nội dung file data.dat ra màn hình. */ # include "stdio.h" (Trang 7)
 Ví dụ: đọc một file văn bản, đếm và in ra màn hình số lượng ký tự, số lượng tab(‘\t’), cách trống(‘  ’) và xuống dòng(‘\n’) - Bài giảng Tin học đại cương: Chương 6 - Nguyễn Duy Hiệp
d ụ: đọc một file văn bản, đếm và in ra màn hình số lượng ký tự, số lượng tab(‘\t’), cách trống(‘ ’) và xuống dòng(‘\n’) (Trang 14)
 VD 2. Đọc nội dung file và hiển thị ra màn hình - Bài giảng Tin học đại cương: Chương 6 - Nguyễn Duy Hiệp
2. Đọc nội dung file và hiển thị ra màn hình (Trang 23)