Tệp là tập hợp các bản ghi hoặc là một nơi trên đĩa cứng, nơi dữ liệu được lưu trữ vĩnh viễn.
Thao tác trên tệp
Các thao tác trên tệp trong ngôn ngữ lập trình C như sau -
- Đặt tên cho tệp
- Mở tệp
- Đọc từ tệp
- Ghi vào tệp
- Đóng tệp
Cú pháp
Cú pháp để mở một tệp như sau -
FILE *File pointer;
Ví dụ:FILE * fptr;
Cú pháp đặt tên tệp như sau -
File pointer = fopen ("File name", "mode");
Ví dụ:
fptr = fopen ("sample.txt", "r"); FILE *fp; fp = fopen ("sample.txt", "w");
Xử lý lỗi trong tệp
Một số lỗi trong tệp như sau -
- Đang cố gắng đọc hết phần cuối của tệp.
- Thiết bị vượt luồng.
- Đang cố gắng mở một tệp không hợp lệ.
- Thực hiện thao tác không hợp lệ bằng cách mở tệp ở chế độ khác.
ferror ()
Nó được sử dụng để phát hiện lỗi trong khi thực hiện các thao tác đọc / ghi.
Cú pháp cho hàm ferror () như sau -
Cú pháp
int ferror (file pointer);
Ví dụ:
Ví dụ
FILE *fp; if (ferror (fp)) printf ("error has occurred");
Nó trả về 0, nếu thành công và khác 0, nếu không.
Chương trình
Sau đây là chương trình C để sử dụng hàm ferror () -
#include<stdio.h> int main(){ FILE *fptr; fptr = fopen("sample.txt","r"); if(ferror(fptr)!=0) printf("error occurred"); putc('T',fptr); if(ferror(fptr)!=0) printf("error occurred"); fclose(fptr); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
error occurred Note: try to write a file in the read mode results an error.
perror ()
Nó được sử dụng để in lỗi.
Cú pháp cho hàm perror () như sau -
Cú pháp
perror (string variable);
Ví dụ:
Ví dụ
FILE *fp; char str[30] = "Error is"; perror (str);
Kết quả như sau -
Error is: error 0
Chương trình
Sau đây là chương trình C để sử dụng hàm perror () -
#include<stdio.h> int main ( ){ FILE *fp; char str[30] = "error is"; int i = 20; fp = fopen ("sample.txt", "r"); if (fp == NULL){ printf ("file doesnot exist"); } else{ fprintf (fp, "%d", i); if (ferror (fp)){ perror (str); printf ("error since file is opened for reading only"); } } fclose (fp); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
error is: Bad file descriptor error since file is opened for reading only
feof ()
Nó được sử dụng để kiểm tra xem phần cuối của tệp đã đến (hay) chưa.
Cú pháp cho hàm feof () như sau -
Cú pháp
int feof (file pointer);
Ví dụ:
Ví dụ
FILE *fp; if (feof (fp)) printf ("reached end of the file");
Nó trả về một khác 0, nếu thành công và 0, nếu không.
Chương trình
Sau đây là chương trình C để sử dụng hàm feof () -
#include<stdio.h> main ( ){ FILE *fp; int i,n; fp = fopen ("number. txt", "w"); for (i=0; i<=100;i= i+10){ putw (i, fp); } fclose (fp); fp = fopen ("number. txt", "r"); printf ("file content is"); for (i=0; i<=100; i++){ n = getw (fp); if (feof (fp)){ printf ("reached end of file"); break; }else{ printf ("%d", n); } } fclose (fp); getch ( ); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
File content is 10 20 30 40 50 60 70 80 90 100 Reached end of the file.