Computer >> Máy Tính >  >> Lập trình >> lập trình C

Các hoạt động khác nhau trên tệp trong ngôn ngữ C là gì?

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ác chế độ mở tệp

Các chế độ mở tệp bằng ngôn ngữ C được giải thích bên dưới -

Chế độ Mô tả
r Tệp được mở để đọc
w Tệp được mở để viết
a + Tệp được mở để gắn thêm
r + Tệp được mở để đọc &ghi
w + Tệp được mở để ghi &đọc
a + Tệp được mở để thêm &đọc
rt Tệp văn bản được mở để đọc
wt Tệp văn bản được mở để viết
tại Tệp văn bản được mở để thêm vào
r + t Tệp văn bản được mở để đọc &ghi
w + t Tệp văn bản được mở để ghi &đọc
a + t Tệp văn bản được mở để bổ sung &đọc
rb Tệp nhị phân được mở để đọc
wb Tệp nhị phân được mở để ghi
ab Tệp nhị phân được mở để thêm vào
r + b Tệp nhị phân được mở để đọc &ghi
w + b Tệp nhị phân được mở để ghi &đọc
a + b Tệp nhị phân được mở để bổ sung &đọc.
  • Chế độ ghi khi mở tệp

Cú pháp như sau -

FILE *fp;
fp = fopen ("sample.txt”, "w”);

Nếu tệp không tồn tại, thì một tệp mới sẽ được tạo.

Nếu tệp tồn tại thì nội dung cũ sẽ bị xóa và nội dung hiện tại sẽ được lưu trữ.

  • Chế độ đọc khi mở tệp

Cú pháp như sau -

FILE *fp
fp =fopen ("sample.txt”, "r”);

Nếu tệp không tồn tại, thì hàm fopen trả về giá trị NULL.

Nếu tệp tồn tại, thì dữ liệu được đọc thành công từ tệp

  • Thêm chế độ mở tệp

Cú pháp như sau -

FILE *fp;
fp =fopen ("sample.txt", "a");

Nếu tệp không tồn tại, thì một tệp mới sẽ được tạo.

Nếu tệp tồn tại, nội dung hiện tại sẽ được thêm vào nội dung cũ.

Chế độ Thoát Không thoát
R Đọc fp ="NULL"
W Nội dung hiện tại Tệp mới sẽ được tạo
Đ Nội dung cũ Nội dung hiện tại
Tệp mới sẽ được tạo

Ví dụ

Sau đây là chương trình C cho các thao tác trên tệp -

//Program for copying the contents of one file into another file
#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
file2.txt
Enter the filename to open for writing
file1.txt
Contents copied to file1.txt