Nội dung chính
Hàm fprintf() - Ghi file
Hàm fprintf() trong C được sử dụng để ghi các ký tự vào file. Nó gửi dữ liệu được định dạng tới một stream.
Cú pháp:
int fprintf(FILE *stream, const char *format [, argument, ...])
Ví dụ:
#include <stdio.h> main() { FILE *fp; // mo file fp = fopen("file.txt", "w"); // ghi du lieu vao file fprintf(fp, "Hello C, su dung fprintf()...\n"); // dong file fclose(fp); }
Hàm fscanf() - Đọc file
Hàm fscanf () được sử dụng để đọc tập hợp các ký tự từ file. Nó đọc một từ trong file và trả về EOF ở vị trí kết thúc file.
Cú pháp:
int fscanf(FILE *stream, const char *format [, argument, ...])
Ví dụ 1:
#include <stdio.h> main() { FILE *fp; char buff[255]; fp = fopen("file.txt", "r"); while (fscanf(fp, "%s", buff) != EOF) { printf("%s ", buff); } fclose(fp); }
Kết quả:
Hello C, su dung fprintf()...
Ví dụ 2: đọc thông tin sinh viên:
Giả sử chúng ta có file sinhvien.txt có nội dung như sau:
Name: Vinh ID: 1 Marks: 7.5 Name: Phuc ID: 3 Marks: 9.0 Name: Phi ID: 2 Marks: 10 Name: Manh ID: 4 Marks: 9.5 Name: Thang ID: 5 Marks: 8.0
Nội dung trên khi mở bằng notepad++ trông như sau, mũi tên màu đỏ thể hiện dấu tab (\t):
Sau đây là chương trình đọc file sinhvien.txt:
#include<stdio.h> int main() { FILE *fp; char name[50]; int id; float marks; fp = fopen("sinhvien.txt", "r"); if(fp == NULL) { printf("Error opening file\n"); exit(1); } printf("Vi du su dung ham fscanf(): \n\n"); printf("Name:\t\tID\t\tMarks\n"); // doc thong tin sinh vien while( fscanf(fp, "Name: %s\t\tID: %d\t\tMarks: %f\n" , name, &id, &marks) != EOF ) { printf("%s\t\t%d\t\t%.2f\n", name, id ,marks); } fclose(fp); return 0; }
Chạy chương trình C trên cho kết quả như sau:
Ví dụ file trong C - Lưu trữ thông tin nhân viên
Dưới đây là một ví dụ xử lý tệp để lưu trữ thông tin sinh viên khi người dùng nhập từ console. Chúng ta sẽ lưu trữ id, name và salary của nhân viên.
#include <stdio.h> void main() { FILE *fptr; int id; char name[30]; int salary; fptr = fopen("emp.txt", "w+"); if (fptr == NULL) { printf("File khong ton tai.\n"); return; } printf("Nhap id: "); scanf("%d", &id); fprintf(fptr, "Id = %d\n", id); printf("Nhap name: "); scanf("%s", name); fprintf(fptr, "Name = %s\n", name); printf("Nhap salary: "); scanf("%f", &salary); fprintf(fptr, "Salary = %.2f\n", salary); fclose(fptr); }
Kết quả:
Nhap id: 1001 Nhap name: David Nhap salary: 12000
File: emp.txt
Id = 1001 Name = David Salary = 12000.00