2 .’ Truy xuất trực tiếp trín tập tin nhị phđn
3. Truy xuất dữ liệu trín tập tin văn bản:
Câc hăm dưới đđy được khai trong tệp <stdio.h>
int putc(int ch, FILE *fp) : hăm ghi một ký tự lín tệp. Trong kiểu văn
bản nếu ký tự được ghi lín tệp có mê lă 10 thì hăm ghi lín tệp hai mê lă 13 vă 10 (tức ký tự xuống dòng)
int getc(FILE *fp) : hăm đọc một ký tự từ tệp. Nếu.thănh công hăm cho
mê ký tự vừa đọc được (từ 0 đến 255), gặp cuối tệp hay lỗi hăm cho EOF. Trong kiểu văn bản nếu đọc cả hai mê 13 vă 10 thì hăm trả về mê 10, đọc mê 26 hăm trả về EOF.
int fputs(const char *s, FILE *fp) : ghi xđu s lín tệp fp (ký tự ‘\0’ (ký tự
kết thúc xđu) khơng ghi lín tệp). Nếu thănh cơng hăm trả về ký tự cuối cùng ghi lín tệp, nếu lỗi hăm cho EOF.
char *fgets(char *s, int n, FILE *fp) : đọc một xđu ký tự từ tệp fp chứa
văo vùng nhớ s, n lă độ dăi Cực đại của xđu. Việc đọc kết thúc khi : hoặc đê đọc được n-1 ký tự, hoặc gặp cặp mê 13 10 (khi đó mê 10 được đưa văo xđu kết quả), hoặc gặp dấu kết thúc tệp. Xđu kết quả được bổ xung thím ký tự ‘\0’ (ký tự kết thúc xđu). Hăm trả về địa chỉ vùng nhận kết quả, nếu bị lỗi hay đê ở cuối tệp hăm cho NULL
Ví dụ 4:Minh họa sử dụng hăm fputc() vă fgetc()
#include<iostream> #include<conio.h> using namespace std; int main() int í, n=4; char c; FILE *fp; fp=fopen("vanbanl.txt","w");
//Nhập văo tập tin câc ký tự
cout<<"\nNhap mot day ky tu,ENTER de ket thuc\n";
do{
c=getchar(); //Nhap 1 ký tự từ băn phím fputc(c,fp);
}while(c!='\n');
fclose(fp);
//Đọc dữ liệu từ tập tin vă in ra măn
fp=fopen("vanbanl.txt","r");
cout<<"Cac ky tu doc tu tap tin:\n"; do{
hình
c=fgetc(fp);' cout<<c; }while(c!='\n'); fclose(fp); system("pause"); return 0; _}_________________________ • ________________________________
Chương trình cho phĩp người dùng lđn lượt nhập câc ký tự từ băn phím, câc ký tự được nhập được ghi văo tệp vên bản. Kết thúc quâ trình nhập băng phím Enter. Sau đó đọc dữ liệu từ tập tin vă in ra măn hình