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