- Kết quả trả về của hàm là ký tự được ấn.
8. int feof(FILE *f)
Cho giá trị khác không nếu ở cuối tập tin, ngược lại =0
5. CÁC HÀM NHẬP XUẤT
5.1. Nhập xuất ký tự : (Dùng cho kiểu nhị phân và văn bản):
Ghi ký tự lên tập tin:
int putc(int ch, FILE *f) int fputc(int ch, FILE *f)
Ghi lên file f ký tự có mã = ch % 256 Nếu thành công kết quả = mã của ký tự đã ghi, ngược lại =EOF (-1)
Trong trường hợp ghi theo văn bản thì khi gặp mã 10 sẽ ghi thành 13 và 10 Đọc ký tự từ tập tin:
int getc( FILE *f) int fgetc( FILE *f)
Đọc một ký tự từ file f . Nếu thành công kết quả = mã của ký tự đọc được, ngược lại = -1
5.2. Nhập xuất chuỗi: (Dùng cho kiểu văn bản)
Ghi một chuỗi:
int fputs(const char *s, FILE *f)
Ghi một chuỗi được chỉ tới bới con trỏ s vào file f.
Kết quả = ký tự cuối được ghi nếu thành công, ngược lại =EOF Đọc một chuỗi:
char *fgets(const char *s, int n, FILE *f)
Đọc một chuỗi từ File f và đưa vào vùng nhớ do s trỏ đến.
Việc đọc kết thúc khi đã đọc được n-1 ký tự , hoặc gặp ký tự xuống dòng , hoặc gặp ký tự kết thúc File.
Nếu việc đọc có lỗi kết quả của hàm =NULL.
5.3. Đọc ghi dữ liệu theo khuôn dạng: (Dùng cho kiểu văn bản)
Ghi dữ liệu theo khuôn dạng:
int fprintf(FILE *f , const char *đặc tả,....)
... là danh sách các đối số tương ứng với các đặc tả.
Sử dụng giống như hàm printf, dữ liệu sẽ được ghi lên file. Đọc dữ liệu theo khuôn dạng:
fscanf(FILE *f , const char *đặc tả,....)
... là danh sách các đối số tương ứng với các đặc tả.
Sử dụng giống như hàm scanf, dữ liệu sẽ được đọc từ File f rồi đưa vào các đối số tương ứng.
Ví dụ: Đọc nội dung của một tập tin theo một cấu trúc như sau:
Tập tin ghi thông tin của n đỉnh của một đa giác. Mỗi đỉnh có 2 tọa độ là x,y kiểu số nguyên.
Tập tin có n+1 dòng. Dòng đầu chứa số đỉnh (n)
n dòng còn lại , mỗi dòng chứ toạ độ của một đỉnh.
#include <stdio.h> #define MAX 50 main() {FILE *f ; int i,n,x[MAX],y[MAX]; f=fopen(“dagiac.sl”,”rt”); fscanf(f,”%d”,&n); for (i=1;i<=n;i++) fscanf(f,”%d%d”,&x[i],&y[i]); fclose(f); }
5.4. Đọc ghi số nguyên : (Dùng cho kiểu nhị phân)
Ghi một số nguyên: int putw(int n, FILE *f)
Ghi số nguyên n (2 byte) lên File f. Nếu không thành công hàm có kết quả EOF Đọc một số nguyên:
int getw(FILE *f)
Đọc một số nguyên n (2 byte) từ file f. Nếu thành công kết quả của hàm bằng giá trị đọc được, ngược lại = EOF.
5.5. Đọc ghi cấu trúc : (Dùng cho kiểu nhị phân)
Ghi mẫu tin lên tập tin:
int fwrite(void *ptr, int size, int n, FILE *f) ptr: con trỏ chỉ tới vùng nhớ chứa dữ liệu cần ghi; size: Kích thước của một mẫu tin (tính theo byte); n: Số mẫu tin cần ghi.
Ghi n mẫu tin có kích thước của mỗi mẫu tin là size lên File f. Kết quả của hàm bằng số mẫu tin được ghi thật sự.
Đọc mẫu tin lên tập tin:
int fread(void *ptr, int size, int n, FILE *f)
ptr: con trỏ chỉ tới vùng nhớ chứa dữ liệu đọc được; size: Kích thước của một mẫu tin (tính theo byte); n: Số mẫu tin cần đọc.
Đọc n mẫu tin có kích thước của mỗi mẫu tin là size từ File f rồi lưu vào vùng nhớ do ptr chỉ đến. Kết quả của hàm bằng số mẫu tin được ghi thật sự.