Tệp là một 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. Bằng cách sử dụng các lệnh C, chúng ta có thể truy cập tệp theo nhiều cách khác nhau.
Thao tác trên tệp
Các thao tác có thể được thực hiện trên tệp bằng ngôn ngữ C như sau -
- Đặt tên cho tệp.
- Mở tệp.
- Đọc từ tệp.
- Đang ghi vào tệp.
- Đang đóng tệp.
Cú pháp
Cú pháp để mở và đặt tên tệp như sau -
FILE *File pointer;
Ví dụ:FILE * fptr;
File pointer = fopen ("File name”, "mode”);
Ví dụ:fptr =fopen ("sample.txt", "r");
FILE *fp; fp = fopen ("sample.txt”, "w”);
Cú pháp để đọc từ tệp như sau -
int fgetc( FILE * fp );// read a single character from a file
Cú pháp để ghi vào tệp như sau -
int fputc( int c, FILE *fp ); // write individual characters to a stream
Với sự trợ giúp của các chức năng này, chúng tôi có thể sao chép nội dung của một tệp này sang tệp khác.
Ví dụ
Sau đây là Chương trình C để sao chép nội dung của một tệp sang tệp khác -
#include <stdio.h> #include <stdlib.h> // For exit() int main(){ FILE *fptr1, *fptr2; char filename[100], c; printf("Enter the filename to open for reading \n"); scanf("%s",filename); // Open one file for reading fptr1 = fopen(filename, "r"); if (fptr1 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } printf("Enter the filename to open for writing \n"); scanf("%s", filename); // Open another file for writing fptr2 = fopen(filename, "w"); if (fptr2 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } // Read contents from file c = fgetc(fptr1); while (c != EOF){ fputc(c, fptr2); c = fgetc(fptr1); } printf("\nContents copied to %s", filename); fclose(fptr1); fclose(fptr2); return 0; }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
Enter the filename to open for reading file3.txt Enter the filename to open for writing file1.txt Contents copied to file1.txt