Nhập/xuất chuẩn 1 Mở, đóng tệp

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

7.2.1. Mở, đóng tệp

Để mở và đóng một tệp , tr−ớc hết phải khai báo biến con trỏ tệp bằng lệnh:

FILE <con trỏ tệp>;

Ví dụ:

FILE *Fvb, *Fnp;

Để mở tệp ta dùng hàm fopen:

FILE *fopen(const char *tên_tệp, const char *kiểu);

Trong đó đối thứ nhất là tên tệp, đối thứ hai là kiểu truy nhập. Nếu mở tệp thành công hàm trả vể con trỏ kiểu FILE ứng với tệp vừa mở, nếu có lỗi (không mở đ−ợc tệp) hàm trả về giá trị NULL. Kiểu truy nhập có thể có các giá trị nh− sau:

Kiểu ý nghĩa

“r” “rt” mở tệp chỉ đọc theo kiểu văn bản, nếu tệp không tồn tại sẽ báo lỗi. “w” “wt” mở tệp mới để ghi theo kiểu văn bản, nếu tệp đã tồn tại sẽ bị xoá “a” “at” mở tệp để bổ sung theo kiểu văn bản, nếu tệp ch−a có thì tạo tệp

mới.

“rb” mở tệp để đọc theo kiểu nhị phân, nếu tệp ch−a có sẽ báo lỗi. “wb” mở tệp để ghi theo kiểu nhị phân, nếu tệp đã có thì sẽ bị xoá. “ab” mở tệp để bổ sung theo kiểu nhị phân, nếu tệp ch−a có thì tạo tệp

mới.

“r+” “r+t” mở tệp để đọc/ghi theo kiểu văn bản, nếu tệp không tồn tại sẽ báo lỗi.

“w+” “w+t” mở tệp để đọc/ghi theo kiểu văn bản, nếu tệp tồn tại sẽ bị xoá. “a+” “a+t” mở tệp để bổ sung theo kiểu văn bản, nếu tệp ch−a có thì tạo tệp

Kiểu ý nghĩa

“r+b” mở tệp để đọc/ghi theo kiểu nhị phân, nếu tệp ch−a có thì báo lỗi. “w+b” mở tệp để đọc/ghi theo kiểu nhị phân, nếu tệp đã có thì bị xoá. “a+b” mở tệp để đọc/ghi bổ sung theo kiểu nhị phân, nếu tệp ch−a có thì

tạo tệp mới. Ví dụ: Fvb = fopen(“txtfile.txt”, “w”); Để đóng một tệp đang mở ta dùng hàm: fclose(<con trỏ tệp>); Ví dụ: fclose(Fvb); 7.2.2. Nhập/xuất ký tự

Ghi vào tệp một ký tự có thể dùng một trong hai hàm sau:

int putc(int ch, FILE *fvar); int fputc(int ch, FILE *fvar);

Nếu thành công hàm cho mã ký tự đ−ợc ghi là ch%256, trái lại hàm cho EOF. Đọc một ký tự từ tệp có thể sử dụng các hàm sau:

int getc(FILE *fvar); int fgetc(FILE *fvar);

Nếu thành công hàm cho mã ký tự đọc đ−ợc (từ 0 tới 255), nếu gặp vị trí kết thúc tệp hay có lỗi hàm cho EOF.

Ví dụ:

// Nhap xuat ky tu voi tep van ban # include <iostream.h>

# include <stdio.h> # include <conio.h>

void main() { FILE *f; char ch; clrscr(); // Tao tep f = fopen("TEXT_CF.TXT", "w"); //Nhập ký tự từ bàn phím,gõ phím <Enter> sẽ dừng while ((ch = getche()) != '\r')

putc(ch, f); // ghi ký tự vào tệp fclose(f);

// Doc tep

printf("\nNoi dung tep TEXT_CF.TXT: "); f = fopen("TEXT_CF.TXT", "r");

while ((ch = getc(f)) != EOF) printf("%c", ch); fclose(f);

getch(); }

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