Trong ngôn ngữ lập trình C, bạn có thể thực hiện xử lý file bằng cách sử dụng các hàm và thư viện liên quan đến file. Có hai loại file chính bạn có thể làm việc trong C: file văn bản (text file) và file nhị phân (binary file). Dưới đây là một số ví dụ cơ bản về cách xử lý file trong C:
1. Mở và đóng file: Để làm việc với file, bạn cần mở file trước khi đọc hoặc ghi và sau đó đóng file sau khi hoàn thành công việc. Dùng hàm fopen
để mở file và fclose
để đóng file.
c
#include <stdio.h>
int main() {
FILE *file;
file = fopen("example.txt", "r"); // Mở file example.txt để đọc
if (file == NULL) {
printf("Không thể mở file.\n");
return 1;
}
// Thực hiện công việc trên file ở đây
fclose(file); // Đóng file sau khi hoàn thành
return 0;
}
2. Ghi dữ liệu vào file văn bản: Để ghi dữ liệu vào file văn bản, bạn có thể sử dụng hàm fprintf
.
c
#include <stdio.h>
int main() {
FILE *file;
file = fopen("output.txt", "w"); // Mở file output.txt để ghi
if (file == NULL) {
printf("Không thể mở file.\n");
return 1;
}
fprintf(file, "Xin chào, thế giới!\n");
fprintf(file, "Đây là ví dụ về ghi dữ liệu vào file.\n");
fclose(file); // Đóng file sau khi ghi xong
return 0;
}
3. Đọc dữ liệu từ file văn bản: Để đọc dữ liệu từ file văn bản, bạn có thể sử dụng hàm fscanf
.
c
#include <stdio.h>
int main() {
FILE *file;
file = fopen("input.txt", "r"); // Mở file input.txt để đọc
if (file == NULL) {
printf("Không thể mở file.\n");
return 1;
}
char line[100];
while (fgets(line, sizeof(line), file) != NULL) {
printf("%s", line);
}
fclose(file); // Đóng file sau khi đọc xong
return 0;
}
4. Ghi và đọc file nhị phân: Để làm việc với file nhị phân, bạn cần sử dụng hàm fwrite
để ghi và hàm fread
để đọc.
c
#include <stdio.h>
struct Student {
char name[50];
int age;
};
int main() {
FILE *file;
file = fopen("students.dat", "wb"); // Mở file nhị phân để ghi
if (file == NULL) {
printf("Không thể mở file.\n");
return 1;
}
struct Student student = {"John", 20};
fwrite(&student, sizeof(struct Student), 1, file);
fclose(file); // Đóng file sau khi ghi xong
// Đọc dữ liệu từ file nhị phân
file = fopen("students.dat", "rb"); // Mở file nhị phân để đọc
if (file == NULL) {
printf("Không thể mở file.\n");
return 1;
}
struct Student readStudent;
fread(&readStudent, sizeof(struct Student), 1, file);
printf("Tên: %s, Tuổi: %d\n", readStudent.name, readStudent.age);
fclose(file); // Đóng file sau khi đọc xong
return 0;
}
Trong các ví dụ trên, chúng ta đã thấy cách mở, ghi, và đọc các loại file khác nhau (văn bản và nhị phân) bằng cách sử dụng các hàm tương ứng.