Phát hiệ n lỗi khi truy xuất tập tin

Một phần của tài liệu Làm quen với ngôn ngữ C (Trang 61 - 63)

IV. Structure:

V.3. Phát hiệ n lỗi khi truy xuất tập tin

Phầ n lớ n những hà m xuấ t, nhậ p tậ p tin chuẩ n không thông bá o rõ nội dung củ a lỗ i. Chẳ ng hạ n như:

- putc () sẽ trả về EOF khi có lỗ i hoặ c cuố i tậ p tin

- fgets () sẽ trả về là NULL khi đ ọ c hế t file hoặ c khi có lỗ i

Do đ ó , đ ể phá t hiệ n lỗ i khi truy xuấ t tậ p tin, ta dù ng macro ferror (FILE *fptr) int ferror (file * ptr)

Macro ferror trả về mộ t trị khá c 0 nế u phá t hiệ n ra lỗ i trê n file fptr. * Để xuấ t câ u thô ng bá o lỗ i ta dù ng hà m perror ()

void perror (const char * str)

vớ i str : chuỗ i ký tự chứ a câ u thô ng bá o * Hai hà m nà y thườ ng đượ c sử dụ ng ngay sau khi sử dụ ng cá c hà m đ ọ c / ghi file

Ví dụ : fwrite (&table, sizeof (table), 1, fptr); if (ferror (fptr) != 0)

{ perror (“Loi ghi du lieu”); exit (0); } Ví dụ : #include <stdio.h> void main() { FILE *fp;

fp = fopen("perror.dat", "r"); if (!fp)

perror("Khô ng thể mở file đ ể đ ọ c"); }

Khi chạ y chươ ng trì nh nà y, nế u trê n dĩ a chưa có tậ p tin perror.dat thì sẽ hiệ n thô ng bá o lỗ i: Khô ng thể mở file đ ể đ ọ c: No such file or directory.

Bà i tậ p

1. Tạ o tậ p tin diệ n tí ch.h

#define Pi 3.14

#define dthv (x) x*x

#define dtht (x) (Pi*x*x)

2. Viế t chươ ng trì nh tí nh diệ n tí ch dự a và o file dientich.h ở trê n 3. Viế t hà m đ ệ qui tí nh tí ch P(n) = 1 * 2 * 3* ....* n , n>0

4. Viế t hà m đ ệ qui tí nh hà m mũ xn, vớ i n nguyê n.

5. Viế t hà m đ ệ qui tí nh phầ n tử thứ n củ a hà m Fibonacci.

6. Viế t hà m đ ệ qui giả i quyế t bà i toá n Thá p Hà nộ i. Có 3 cộ t A, B, C. Cộ t A hiệ n đ ang có n dĩ a kí ch thướ c khá c nhau, dĩ a nhỏ ở trê n dĩ a lớ n ở dướ i. H∙y dời n dĩ a từ cột A sang cột C (xem cột B là cột trung gian) vớ i đ iề u kiệ n mỗ i lầ n chỉ được dời 1 dĩ a và dĩ a đặ t trê n bao giờ cũng nhỏ hơ n dĩ a đ ặ t dướ i.

7. Viế t chươ ng trì nh m∙ hó a và giả i m∙ một file vă n bả n sao cho nế u ta đ∙ m∙ hó a rồ i thì chươ ng trì nh khô ng m∙ hó a nữ a, và nế u file đó chưa m∙ hóa thì khô ng đượ c giả i m∙.

8. Cho biế t trong mộ t file vă n bả n do ta nhậ p và o có bao nhiê u ký tự, bao nhiê u từ , và bao nhiê u dòng; biế t rằ ng cá c từ cá ch nhau khoả ng trắ ng, dấ u tab, dấ u chấ m.

9. Viế t chươ ng trì nh tạ o mộ t menu thự c hiệ n cá c chứ c nă ng sau trê n file vă n bả n:

- Tạ o file mớ i - Đọ c file - Xó a file

- Ghi nố i đ uô i file - Copy file

- Di chuyể n file từ thư mụ c nà y sang thư mụ c khá c

thườ ng)

- Thay thế từ nà y bằ ng từ khá c

10. Tạ o menu thự c hiệ n cá c cô ng việ c sau:

- Nhậ p danh sá ch có kiể u họ c viê n và o mộ t file tê n 'HOSO.TXT', mỗ i họ c viê n có cá c thô ng tin sau: maso (int), hoten (chuỗ i tố i đ a 30 ký tự ), phá i (NAM/NU), tuổ i (int).

- Liệ t kê danh sá ch họ c viê n ra mà n hì nh theo dạ ng sau:

M∙ số Họ và tê n Phá i Tuổ i

- Truy xuấ t ngẫ u nhiê n theo thứ tự mẫ u tin - Tì m kiế m mộ t ngườ i trong file theo m∙ số

- Cậ p nhậ t sửa đổi cá c mẫ u tin theo m∙ số (Nhậ p m∙ số, sau đó hiệ u chỉ nh lạ i hoten, phai, và tuổ i).

Một phần của tài liệu Làm quen với ngôn ngữ C (Trang 61 - 63)

Tải bản đầy đủ (PDF)

(63 trang)