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

Giải thích hoạt động chế độ ghi 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ụ:

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

chương trình1

Sau đây là chương trình C để đọc tên và điểm của n số học sinh và lưu chúng vào một tệp tin -

#include <stdio.h>
int main(){
   char name[50];
   int marks, i, num;
   printf("Enter number of students: ");
   scanf("%d", &num);
   FILE *fptr;
   fptr = (fopen("std.txt", "w")); // opening file in write mode
   if(fptr == NULL){
      printf("Error!");
      exit(1);
   }
   for(i = 0; i < num; ++i){
      printf("For student%d\nEnter name: ", i+1);
      scanf("%s", name);
      printf("Enter marks: ");
      scanf("%d", &marks);
      fprintf(fptr,"\nName: %s \nMarks=%d \n", name, marks);
   }
   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 -

Enter number of students: 3
For student1
Enter name: lucky
Enter marks: 59
For student2
Enter name: pinky
Enter marks: 89
For student3
Enter name: bob
Enter marks: 45

Chương trình 2

Sau đây là chương trình C để lưu trữ thông tin chi tiết của một nhân viên trong một tệp và để in ra -

#include<stdio.h>
int main ( ){
   FILE *fp;
   int eno;
   char ename[30];
   float sal;
   fp =fopen ("emp.txt", "w"); // opening file in write mode
   printf ("enter the details of eno, ename, sal:");
   scanf ("%d%s%f", &eno, ename, &sal);
   fprintf (fp, "%d%s%f", eno, ename, sal);
   fclose (fp);
   fp = fopen ("emp.txt", "r");
   fscanf (fp, "%d%s%f", &eno, ename, &sal);
   printf ("employee no: = %d\n", eno);
   printf ("employee name = %s\n", ename);
   printf ("salary = %f\n", sal);
   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 -

enter the details of eno, ename, sal:1 Pinky 34000
employee no: = 1
employee name = Pinky
salary = 34000.000000