Làm việc với File trong C - Code block
Làm việc với file trong C
Các thao tác với file
Trong C, có thể thực thi 4 thao tác chính trên file, ở cả dạng text và binary
Tạo 1 file mới
Mở file file đã tồn tại
Đóng file
Đọc và ghi thông tin vào file
Làm việc với file
Khi làm việc với file, bạn cần khai báo một con trỏ kiểu file. Khai báo này cần được thiết lập kết nối giữa file và chương trình
FILE *fptr;
Mở 1 file ở dạng tạo mới hoặc mở ra.
Mở file sử dụng thư viện “stdio.h”, header file : fopen()
Cú pháp chuẩn dạng vào ra I/O là:
ptr = fopen("fileopen","mode")
Ví dụ
fopen("E:\\cprogram\\newprogram.txt","w");
fopen("E:\\cprogram\\oldprogram.bin","rb");
|
-Xem thêm code khác tại đây:
Bài tập 1
Lưu giá trị ra file
Example 1: Write to a text file using fprintf()
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
FILE *fptr;
fptr = fopen("C:\\program.txt","w");
if(fptr == NULL)
{
printf("Error!");
exit(1);
}
printf("Enter num: ");
scanf("%d",&num);
fprintf(fptr,"%d",num);
fclose(fptr);
return 0;
}
Example 1: Write to a text file using fprintf()
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
FILE *fptr;
fptr = fopen("C:\\program.txt","w");
if(fptr == NULL)
{
printf("Error!");
exit(1);
}
printf("Enter num: ");
scanf("%d",&num);
fprintf(fptr,"%d",num);
fclose(fptr);
return 0;
}
|
Bài tập 2
Đọc giá trị từ file
Ví dụ 2: Đọc giá trị từ file
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
FILE *fptr;
if ((fptr = fopen("C:\\program.txt","r")) == NULL){
printf("Error! opening file");
// Program exits if the file pointer returns NULL.
exit(1);
}
fscanf(fptr,"%d", &num);
printf("Value of n=%d", num);
fclose(fptr);
return 0;
}
Ví dụ 2: Đọc giá trị từ file
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
FILE *fptr;
if ((fptr = fopen("C:\\program.txt","r")) == NULL){
printf("Error! opening file");
// Program exits if the file pointer returns NULL.
exit(1);
}
fscanf(fptr,"%d", &num);
printf("Value of n=%d", num);
fclose(fptr);
return 0;
}
|
Bài tập 3 - Lưu 1 Structure ra file
/*
1. Tạo cấu trúc dữ liệu với các thông tin sinh viên
Tạo cấu trúc
Khai báo biến kiểu cấu trúc
Nhập dữ liệu vào biến
Hiện dữ liệu ra màn hình
Lưu biến ra file
*/
#include <stdio.h>
struct NhanVien
{
char hoten[50];
char chucvu[50];
float mucluong;
float mucchi;
};
int main ()
{
NhanVien TP1;
printf("Nhap gia tri: \n");
printf("\nNhap ho ten: ");
gets(TP1.hoten);
printf("\nNhap chuc vu: ");
gets(TP1.chucvu);
printf("Nhap muc luong: ");
scanf("%f",&TP1.mucluong);
printf("Nhap muc chi:");
scanf("%f",&TP1.mucchi);
printf("\n----------Hien ra man hinh----------\n");
printf("Thong tin cua nhan su:");
printf("Ho ten: %s",TP1.hoten);
printf("\nChuc vu: %d",TP1.chucvu);
printf("\nMuc luong: %5.2f",TP1.mucluong);
printf("\nMuc chi: %5.2f",TP1.mucchi);
printf("\n----------Luu ra file----------\n");
//3.1 Khai bao con tro kieu file
FILE *fptr;
//3.2 Mo file
fptr = fopen("D:\\Nhanvien.txt","w");
//3.3 Kiem tra xem file co ton tai khong
if(fptr == NULL)
{
printf("Error!");
return (1);
}
//3.4 Bat dau luu ra file
printf("\n----------Dang luu ra file----------\n");
//printf(fptr,"%s","Thong tin cua nhan su:");
fprintf(fptr,"nHo ten: %s",TP1.hoten);
fprintf(fptr,"\nChuc vu: %d",TP1.chucvu);
fprintf(fptr,"\nMuc luong: %5.2f",TP1.mucluong);
fprintf(fptr,"\nMuc chi: %5.2f",TP1.mucchi);
//3.5. Dong file
fclose(fptr);
return 0;
}
/*
1. Tạo cấu trúc dữ liệu với các thông tin sinh viên
Tạo cấu trúc
Khai báo biến kiểu cấu trúc
Nhập dữ liệu vào biến
Hiện dữ liệu ra màn hình
Lưu biến ra file
*/
#include <stdio.h>
struct NhanVien
{
char hoten[50];
char chucvu[50];
float mucluong;
float mucchi;
};
int main ()
{
NhanVien TP1;
printf("Nhap gia tri: \n");
printf("\nNhap ho ten: ");
gets(TP1.hoten);
printf("\nNhap chuc vu: ");
gets(TP1.chucvu);
printf("Nhap muc luong: ");
scanf("%f",&TP1.mucluong);
printf("Nhap muc chi:");
scanf("%f",&TP1.mucchi);
printf("\n----------Hien ra man hinh----------\n");
printf("Thong tin cua nhan su:");
printf("Ho ten: %s",TP1.hoten);
printf("\nChuc vu: %d",TP1.chucvu);
printf("\nMuc luong: %5.2f",TP1.mucluong);
printf("\nMuc chi: %5.2f",TP1.mucchi);
printf("\n----------Luu ra file----------\n");
//3.1 Khai bao con tro kieu file
FILE *fptr;
//3.2 Mo file
fptr = fopen("D:\\Nhanvien.txt","w");
//3.3 Kiem tra xem file co ton tai khong
if(fptr == NULL)
{
printf("Error!");
return (1);
}
//3.4 Bat dau luu ra file
printf("\n----------Dang luu ra file----------\n");
//printf(fptr,"%s","Thong tin cua nhan su:");
fprintf(fptr,"nHo ten: %s",TP1.hoten);
fprintf(fptr,"\nChuc vu: %d",TP1.chucvu);
fprintf(fptr,"\nMuc luong: %5.2f",TP1.mucluong);
fprintf(fptr,"\nMuc chi: %5.2f",TP1.mucchi);
//3.5. Dong file
fclose(fptr);
return 0;
}
|
Bài tập 4 - Lưu một mảng Struct ra file
/*
1. Tạo cấu trúc dữ liệu với các thông tin sinh viên
Tạo cấu trúc
Khai báo biến kiểu cấu trúc
Nhập dữ liệu vào biến
Hiện dữ liệu ra màn hình
Lưu biến ra file
*/
#include <stdio.h>
struct NhanVien
{
char hoten[50];
char chucvu[50];
float mucluong;
float mucchi;
};
int main ()
{
//Khai bao truong phong kieu cau truc nhan vien
NhanVien TP1;
//Danh sach Nhan vien
NhanVien ds[10];
printf("Nhap gia tri: \n");
for (int i = 0; i<10; i++)
{
printf("\nNhap ho ten: ");
gets(ds[i].hoten);
printf("\nNhap chuc vu: ");
gets(ds[i].chucvu);
printf("Nhap muc luong: ");
scanf("%f",&ds[i].mucluong);
printf("Nhap muc chi:");
scanf("%f",&ds[i].mucchi);
}
printf("\n----------Hien ra man hinh----------\n");
printf("Thong tin cua nhan su:");
for (int i = 0; i<10; i++)
{
printf("Ho ten: %s",ds[i].hoten);
printf("\nChuc vu: %d",ds[i].chucvu);
printf("\nMuc luong: %5.2f",ds[i].mucluong);
printf("\nMuc chi: %5.2f",ds[i].mucchi);
}
printf("\n----------Luu ra file----------\n");
//3.1 Khai bao con tro kieu file
FILE *fptr;
//3.2 Mo file
fptr = fopen("D:\\Nhanvien.txt","w");
//3.3 Kiem tra xem file co ton tai khong
if(fptr == NULL)
{
printf("Error!");
return (1);
}
//3.4 Bat dau luu ra file
printf("\n----------Dang luu ra file----------\n");
for (int i = 0; i<10; i++)
{
fprintf(fptr,"Nhan vien thu %d\n",i+1);
fprintf(fptr,"Ho ten: %s\n",ds[i].hoten);
fprintf(fptr,"Chuc vu: %d\n",ds[i].chucvu);
fprintf(fptr,"Muc luong: %5.2f\n",ds[i].mucluong);
fprintf(fptr,"Muc chi: %5.2f\n",ds[i].mucchi);
}
//3.5. Dong file
fclose(fptr);
return 0;
}
/*
1. Tạo cấu trúc dữ liệu với các thông tin sinh viên
Tạo cấu trúc
Khai báo biến kiểu cấu trúc
Nhập dữ liệu vào biến
Hiện dữ liệu ra màn hình
Lưu biến ra file
*/
#include <stdio.h>
struct NhanVien
{
char hoten[50];
char chucvu[50];
float mucluong;
float mucchi;
};
int main ()
{
//Khai bao truong phong kieu cau truc nhan vien
NhanVien TP1;
//Danh sach Nhan vien
NhanVien ds[10];
printf("Nhap gia tri: \n");
for (int i = 0; i<10; i++)
{
printf("\nNhap ho ten: ");
gets(ds[i].hoten);
printf("\nNhap chuc vu: ");
gets(ds[i].chucvu);
printf("Nhap muc luong: ");
scanf("%f",&ds[i].mucluong);
printf("Nhap muc chi:");
scanf("%f",&ds[i].mucchi);
}
printf("\n----------Hien ra man hinh----------\n");
printf("Thong tin cua nhan su:");
for (int i = 0; i<10; i++)
{
printf("Ho ten: %s",ds[i].hoten);
printf("\nChuc vu: %d",ds[i].chucvu);
printf("\nMuc luong: %5.2f",ds[i].mucluong);
printf("\nMuc chi: %5.2f",ds[i].mucchi);
}
printf("\n----------Luu ra file----------\n");
//3.1 Khai bao con tro kieu file
FILE *fptr;
//3.2 Mo file
fptr = fopen("D:\\Nhanvien.txt","w");
//3.3 Kiem tra xem file co ton tai khong
if(fptr == NULL)
{
printf("Error!");
return (1);
}
//3.4 Bat dau luu ra file
printf("\n----------Dang luu ra file----------\n");
for (int i = 0; i<10; i++)
{
fprintf(fptr,"Nhan vien thu %d\n",i+1);
fprintf(fptr,"Ho ten: %s\n",ds[i].hoten);
fprintf(fptr,"Chuc vu: %d\n",ds[i].chucvu);
fprintf(fptr,"Muc luong: %5.2f\n",ds[i].mucluong);
fprintf(fptr,"Muc chi: %5.2f\n",ds[i].mucchi);
}
//3.5. Dong file
fclose(fptr);
return 0;
}
|
Bài tập 5 - Lưu một mảng Struct ra file - Dạng bảng ngang
/*
1. Tạo cấu trúc dữ liệu với các thông tin sinh viên
Tạo cấu trúc
Khai báo biến kiểu cấu trúc
Nhập dữ liệu vào biến
Hiện dữ liệu ra màn hình
Lưu biến ra file
*/
#include <stdio.h>
struct NhanVien
{
char hoten[50];
char chucvu[50];
float mucluong;
float mucchi;
};
int main ()
{
//Khai bao truong phong kieu cau truc nhan vien
NhanVien TP1;
//Danh sach Nhan vien
NhanVien ds[2];
printf("Nhap gia tri: \n");
for (int i = 0; i<2; i++)
{
//Xoa bo dem
fflush(stdin);
printf("\nNhap ho ten: ");
gets(ds[i].hoten);
printf("\nNhap chuc vu: ");
gets(ds[i].chucvu);
printf("Nhap muc luong: ");
scanf("%f",&ds[i].mucluong);
printf("Nhap muc chi:");
scanf("%f",&ds[i].mucchi);
}
printf("\n----------Hien ra man hinh dang bang ngang----------\n");
printf("%-20s %-30s %-10s %-10s\n", "Ho Ten", "Chuc vu", "Muc luong", "Muc Chi");
for (int i = 0; i < 2; i++)
{
printf("%-20s %-30s %-7.2f %-7.2f\n", ds[i].hoten,ds[i].chucvu,ds[i].mucluong,ds[i].mucchi);
}
printf("\n----------Luu ra file----------\n");
//3.1 Khai bao con tro kieu file
FILE *fptr;
//3.2 Mo file
fptr = fopen("D:\\Nhanvien.txt","w");
//3.3 Kiem tra xem file co ton tai khong
if(fptr == NULL)
{
printf("Error!");
return (1);
}
//3.4 Bat dau luu ra file
printf("\n----------Dang luu ra file bang doc----------\n");
for (int i = 0; i<2; i++)
{
fprintf(fptr,"Nhan vien thu %d\n",i+1);
fprintf(fptr,"Ho ten: %s\n",ds[i].hoten);
fprintf(fptr,"Chuc vu: %d\n",ds[i].chucvu);
fprintf(fptr,"Muc luong: %5.2f\n",ds[i].mucluong);
fprintf(fptr,"Muc chi: %5.2f\n",ds[i].mucchi);
}
//3.4.2. In dang bang ngang
printf("\n----------Hien ra man hinh dang bang ngang----------\n");
fprintf(fptr,"%-20s %-30s %-10s %-10s\n", "Ho Ten", "Chuc vu", "Muc luong", "Muc Chi");
for (int i = 0; i < 2; i++)
{
fprintf(fptr,"%-20s %-30s %-10.2f %-10.2f\n", ds[i].hoten,ds[i].chucvu,ds[i].mucluong,ds[i].mucchi);
}
//3.5. Dong file
fclose(fptr);
return 0;
}
/*
1. Tạo cấu trúc dữ liệu với các thông tin sinh viên
Tạo cấu trúc
Khai báo biến kiểu cấu trúc
Nhập dữ liệu vào biến
Hiện dữ liệu ra màn hình
Lưu biến ra file
*/
#include <stdio.h>
struct NhanVien
{
char hoten[50];
char chucvu[50];
float mucluong;
float mucchi;
};
int main ()
{
//Khai bao truong phong kieu cau truc nhan vien
NhanVien TP1;
//Danh sach Nhan vien
NhanVien ds[2];
printf("Nhap gia tri: \n");
for (int i = 0; i<2; i++)
{
//Xoa bo dem
fflush(stdin);
printf("\nNhap ho ten: ");
gets(ds[i].hoten);
printf("\nNhap chuc vu: ");
gets(ds[i].chucvu);
printf("Nhap muc luong: ");
scanf("%f",&ds[i].mucluong);
printf("Nhap muc chi:");
scanf("%f",&ds[i].mucchi);
}
printf("\n----------Hien ra man hinh dang bang ngang----------\n");
printf("%-20s %-30s %-10s %-10s\n", "Ho Ten", "Chuc vu", "Muc luong", "Muc Chi");
for (int i = 0; i < 2; i++)
{
printf("%-20s %-30s %-7.2f %-7.2f\n", ds[i].hoten,ds[i].chucvu,ds[i].mucluong,ds[i].mucchi);
}
printf("\n----------Luu ra file----------\n");
//3.1 Khai bao con tro kieu file
FILE *fptr;
//3.2 Mo file
fptr = fopen("D:\\Nhanvien.txt","w");
//3.3 Kiem tra xem file co ton tai khong
if(fptr == NULL)
{
printf("Error!");
return (1);
}
//3.4 Bat dau luu ra file
printf("\n----------Dang luu ra file bang doc----------\n");
for (int i = 0; i<2; i++)
{
fprintf(fptr,"Nhan vien thu %d\n",i+1);
fprintf(fptr,"Ho ten: %s\n",ds[i].hoten);
fprintf(fptr,"Chuc vu: %d\n",ds[i].chucvu);
fprintf(fptr,"Muc luong: %5.2f\n",ds[i].mucluong);
fprintf(fptr,"Muc chi: %5.2f\n",ds[i].mucchi);
}
//3.4.2. In dang bang ngang
printf("\n----------Hien ra man hinh dang bang ngang----------\n");
fprintf(fptr,"%-20s %-30s %-10s %-10s\n", "Ho Ten", "Chuc vu", "Muc luong", "Muc Chi");
for (int i = 0; i < 2; i++)
{
fprintf(fptr,"%-20s %-30s %-10.2f %-10.2f\n", ds[i].hoten,ds[i].chucvu,ds[i].mucluong,ds[i].mucchi);
}
//3.5. Dong file
fclose(fptr);
return 0;
}
|
No comments: