Tham khảo tài liệu ''kỹ thuật lập trình c chuyên nghiệp phần 8'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Kiể cấu Kiểu ấ trúc t ú Khái niệm Khai báo Phân loại Các thao tác Khái niệm iệ Tập tin kiểu liệu hỗ trợ truy xuất/ xuất/lưu trữ liệu nhớ ngoài C hỗỗ trợ hai kiểu ể tập tin tin:: văn nhị phân phân Truy xuất thông qua trỏ FILE FILE Kiể Kiểu FILE * Kiể FILE * (khai Kiểu ((kh kh i báo khai bá t stdio.h) stdio.h tdi h) h) cho h phép làm việc iệ với tập tin ((văn văn bản,, nhị phân phân) ) Khai báo trỏ tập tin FILE * fp; fp; Chúng ta sử dụng trỏ tập tin để truy cập (đọc đọc,, ghi ghi,, thêm thôngg tin)) tậpp tin Mở tập tậ tin ti FILE * fopen fopen(( const char *FileName *FileName FileName,, const char *Mode); Mode); Filename: tên tập tin cần mở mở Có thể định đường dẫn đầy đủ đến vị trí tập tin Mode: chế độ mở tập tin: đọc, đọc, để ghi (tạo mới), mới), ghi thêm thêm Nếu tthao ao tác mở tthành cô công, công g, fopen g, ope trả t ả co trỏ t ỏ FILE ttrỏỏ đến tập tin FileName FileName Nếu mở không thành công (FileName không tồn tại, tại, tạo mới), ), fopen trả giá trị NULL Đó tập Đóng tậ tin ti i t fclose( int f l ( FILE *filestream *fil t ); fil t filestream: filestream : trỏ t ỏ đến đế tập tậ tin ti đ mở cần ầ đóng đóng Nế thao Nếu h tác đóng thành hà h cơng, fclose f l trảả vềề Nếu có lỗi (tập tin sử dụng), fclose trả giá trị EOF EOF Ví d dụ : Mở, Mở Đóng Đó tập tậ tin ti 1 FILE * fp f ; fp; // mở VB.TXT VB TXT “chỉ “chỉ hỉ đọc đ ” đọc” if( (fp (fp = fopen fopen(( “C:\ “C:\\LTC LTC\\\VB.TXT”, “r” )) == NULL) { printf( printf i f( f( “Tap “T tin i khong kh mo duoc d \n”); duoc\ ”) exit(1); } //* *// 7 fclose(( fp ); fclose Tậ tin Tập ti văn ă bả Tập ập tin văn kiểu tập ập tin ợ lưu trữ thôngg tin dạng kiểu ký tự tự Truyy xuất tậpp tin văn bản:: theo ký tự theo g dòngg Chế độ mở tập tin văn “r” : đọc ọ (tập ập tin pphải có đĩa đĩa)) “w” : ghi (ghi đè lên tập tin cũ tạo tập tin khơng có đĩa đĩa)) “a” : ghi nối vào cuối tập tin tin “r+” : đọc đọc//gghi ghi Tậpp tin pphải có đĩa đĩa “a+” : đọc đọc,, ghi vào cuối tập tin tin Tạo tập tin tập tin chưa có đĩa đĩa getc, t putc, t ffgetc, t ffputc t getc:: nhận ký tự từ tập tin getc tin int getc ( FILE **fp fp ); getc trả ký tự đọc trả EOF fp không hợp lệ đọc đến cuối tập tin tin putc:: gghi kýý tự pputc ự tập ập tin int putc ( int Ch, FILE * fp ); putc trả EOF thao tác ghi có lỗi lỗi dùng fgetc fputc fputc Ví d dụ 11: getc() t () đọc đ phím hí đến đế E Enter t 10 10 11 12 13 14 #include #include #include void id main() i () { FILE * fp fp;; char filename[ filename[67 67], ], ch ch;; printf ( “Filename “Filename:: “ ); gets (filename) (filename);; if (( ((fp fp = fopen (filename, “w” )) == NULL ) // mở tập tin để ghi { printf ( “Create Create file error \n n”) n”); ); exit (1); } ); while (( ch = getche getche() () ) != ‘\r’ ) // đọc gặp ENTER putc ( fp ); fclose ( fp ); } Ví dụ ụ 2: p putc() () in nội ộ dungg tập ập tin văn hình 1 8 10 11 12 13 14 #include h> #include #include void main() { FILE * fp; fp; char filename[67], char ch ch;; printf ( “Filename: “ ); gets (filename); if ((fp ((fp = fopen (filename, “r” )) == NULL ) // mở tập tin để đọc {p printf ( “Open p file error \n”); ); exit (1); ( ); } while (( ch = getc ( fp ) ) != EOF ) // đọc hết tập tin printf ( “%c”, ch ); fclose ( fp ); } Ví dụ ụ 3: Đếm số từ g tập ập tin văn 7 10 #include