Nhập/xuất chuỗ

Một phần của tài liệu Ngôn ngữ lập trình C++ (Trang 76 - 78)

Để 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(); }

Một phần của tài liệu Ngôn ngữ lập trình C++ (Trang 76 - 78)