Để ghi một chuỗi vào tệp văn bản ta có thể dùng hàm:
int fputs(const char *st, FILE *Fvar);
Trong đó:
• st là con trỏ trỏ tới địa chỉ đầu của một chuỗi ký tự kết thúc bằng dấu ‘\0’.
• Fvar là con trỏ tệp.
Hàm ghi chuỗi st lên tệp Fvar (dấu ‘\0’ không ghi lên tệp). Khi thành công hàm trả về ký tự cuối cùng đ−ợc ghi lên tệp, nếu gặp lỗi hàm cho EOF.
Để đọc một dãy ký tự từ tệp có thể dùng hàm: char *fgets(char st, int n, FILE *Fvar);
Trong đó:
• st là con trỏ kiểu char trỏ tới vùng nhớ đủ lớn để chứa chuỗi ký tự đọc từ tệp.
• n là số nguyên xác định độ dài cực đại của dãy cần đọc. • Fvar là con trỏ tệp.
Hàm đọc dãy ký tự từ tệp Fvar chứa vào vùng nhớ st. Việc đọc kết thúc khi:
- Hoặc đã đọc n-1 ký tự.
- Hoặc gặp dấu xuống dòng (cặp mã 13, 10), khi đó mã 10 đ−ợc đ−a vào xâu kết quả.
- Hoặc kết thúc tệp.
Khi thành công, hàm trả về địa chỉ vùng nhận kết quả. Khi có lỗi hoặc kết thúc tệp, hàm cho giá trị NULL.
Ví dụ 1: Nhập chuỗi từ bàn phím và ghi vào tệp và đọc nội dung tệp ra màn hình.
// Nhap xuat chuoi ky tu voi tep van ban # include <iostream.h> # include <stdio.h> # include <conio.h> # include <string.h> void main() { FILE *f; char ch[81]; clrscr(); // Tao tep
cout <<”\nHay nhap van ban vao tep:\n”; f = fopen("TEXT_ST.TXT", "w");
while (strlen(gets(ch))>0) //Nhap chuoi tu ban phim {
fputs(ch, f); // Ghi chuoi vao tep fputs("\n",f); // Xuong dong moi }
fclose(f); // Doc tep
f = fopen("TEXT_ST.TXT", "r");
while (fgets(ch, 80, f) != NULL) cout << ch; fclose(f);
getch(); }
Ví dụ 2: Nhập chuỗi vào tệp, sau đó đọc từ tệp ra màn hình.
// Nhap xuat chuoi ky tu voi tep van ban # include <iostream.h> # include <stdio.h> # include <conio.h> # include <string.h> void main() { FILE *f; char ch[81]; int i; clrscr(); // Tao tep f = fopen("TEXT_ST1.TXT", "w"); // Ghi 10 dong vao tep
for (i=1; i<=10; i++)
fprintf(f, "Day la dong %2d\n", i); fclose(f);
// Doc tep
printf("\nNoi dung tep TEXT_ST1.TXT:\n"); f = fopen("TEXT_ST1.TXT", "r");
while (fgets(ch, 80, f) != NULL) cout << ch; fclose(f);
getch(); }