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

Giải thích hoạt động chế độ đọc của tệp bằng ngôn ngữ C

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.

Cần tệp

  • Toàn bộ dữ liệu bị mất khi chương trình kết thúc.

  • Việc lưu trữ trong tệp sẽ bảo toàn dữ liệu ngay cả khi chương trình kết thúc.

  • Nếu bạn muốn nhập một lượng lớn dữ liệu, thông thường sẽ mất rất nhiều thời gian để nhập tất cả.

  • Chúng tôi có thể dễ dàng truy cập nội dung của tệp bằng cách sử dụng một vài lệnh.

  • Bạn có thể dễ dàng di chuyển dữ liệu của mình từ máy tính này sang máy tính khác mà không cần thay đổi.

  • 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 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 để khai báo con trỏ tệp như sau -

FILE *File pointer;

Ví dụ:FILE * fptr;

Cú pháp để đặt tên và mở con trỏ tệp như sau -

File pointer = fopen ("File name", "mode");

Ví dụ:để đọc chế độ mở tệp, hãy sử dụng cú pháp 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.

Ví dụ

Sau đây là chương trình C để mở tệp ở chế độ đọc và đếm số dòng có trong tệp -

#include<stdio.h>
#define FILENAME "Employee Details.txt"
int main(){
   FILE *fp;
   char ch;
   int linesCount=0;
   //open file in read more
   fp=fopen(FILENAME,"r"); // already existing need to be open in read mode
   if(fp==NULL){
      printf("File \"%s\" does not exist!!!\n",FILENAME);
      return -1;
   }
   //read character by character and check for new line
   while((ch=getc(fp))!=EOF){
      if(ch=='\n')
         linesCount++;
   }
   //close the file
   fclose(fp);
   //print number of lines
   printf("Total number of lines are: %d\n",linesCount);
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Total number of lines are: 3