c. Các thao tác khác (tiếp)
Hàm
Hàm fseek()fseek()::
Cú pháp:Cú pháp:
int fseek(FILE* con_tro_tep, long int n,
int fseek(FILE* con_tro_tep, long int n,
int vi_tri_ban_đau);
int vi_tri_ban_đau);
Dùng để dịch chuyển con trỏ tệp từ Dùng để dịch chuyển con trỏ tệp từ vi_tri_ban_dauvi_tri_ban_dau
đi một khoảng cách có độ dài n bytes.
đi một khoảng cách có độ dài n bytes.
Giá trị trả về:Giá trị trả về:
Nếu thành công
c. Các thao tác khác (tiếp)c. Các thao tác khác (tiếp) c. Các thao tác khác (tiếp)
Hàm
Hàm fseek()fseek() (tiếp):(tiếp):
Ví dụ:Ví dụ:
fseek(file_ptr, 50, SEEK_SET); fseek(file_ptr, 50, SEEK_SET);
// con tro tep cach vi tri dau tep 50 bytes // con tro tep cach vi tri dau tep 50 bytes
Chú ý:Chú ý:
Giá trị của biến n:
Giá trị của biến n:
>0: Hướng dịch chuyển là về phía cuối tệp>0: Hướng dịch chuyển là về phía cuối tệp
< 0: Hướng dịch chuyển về phía đầu tệp< 0: Hướng dịch chuyển về phía đầu tệp
= 0: Không dịch chuyển.= 0: Không dịch chuyển.
Đối với tệp văn bản, khi mở tệp có thể có sự tự động chuyển đổi
Đối với tệp văn bản, khi mở tệp có thể có sự tự động chuyển đổi
kí tự (ví dụ chuyển đổi cặp kí tự
c. Các thao tác khác (tiếp)c. Các thao tác khác (tiếp) c. Các thao tác khác (tiếp)
Hàm
Hàm rewind()rewind()::
Cú pháp:Cú pháp:
void rewind(FILE* con_tro_tep);
void rewind(FILE* con_tro_tep);
Dùng để đưa con trỏ tệp về đầu tệpDùng để đưa con trỏ tệp về đầu tệp. .
Không có giá trị trả về:Không có giá trị trả về:
Ví dụ:Ví dụ:
rewind(file_ptr);
rewind(file_ptr);
Tương đương với:
Tương đương với:
fseek(file_ptr,0,SEEK_SET);
Ví dụVí dụ Ví dụ
Nối nội dung file 1 vào file 2
Nối nội dung file 1 vào file 2
#include <stdio.h> #include <stdio.h> void main() void main() { {
FILE *fp1, *fp2, *fpout;FILE *fp1, *fp2, *fpout;
char sf1[50], sf2[50], sfout[50];char sf1[50], sf2[50], sfout[50];
int c;int c;
printf("\nNhap ten tap tin thu nhat : ");printf("\nNhap ten tap tin thu nhat : ");
scanf("%s", &sf1);scanf("%s", &sf1);
printf("\nNhap ten tap tin thu hai : ");printf("\nNhap ten tap tin thu hai : ");