1. Trang chủ
  2. » Công Nghệ Thông Tin

Thư viện các hàm trong C ppt

57 933 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 351,12 KB

Nội dung

Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 1 Thư Viện C Hi! Đây là Thư viện các hàm trong C căn bản mà mình sưu tầm được! nó rất hay và hữu ích đó các bạn. Hi vọng bài viết này sẽ giúp ích cho các bạn trong việc học lập trình C. Thân! Mr.Vũ Hiếu. 1. In/Out Danh sách các hàm sử dụng In/Out 1.clearerr 2.fclose 3.feof 4.ferror 5.fflush 6.fgetc 7.fgetpos 8.fgets 9.fopen 10.fprintf 11.fputc 12.fputs 13.fread 14.freopen 15.fscanf 16.fseek 17.fsetpos 18.ftell 19.fwrite 20.getc 21.getchar 22.gets Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 2 23.perror 24.printf 25.putc 26.putchar 27.puts 28.remove 29.rename 30.rewind 31.scanf 32.setbuf 33.setvbuf 34.sprintf 35.sscanf 36.tmpfile 37.tmpnam 38.ungetc 39.vprintf, vfprintf, and vsprintf Hàm clearerr Khai báo : Trích dẫn: void clearerr(FILE *stream); Xoá tín hiệu lỗi gây ra bởi hệ thống khi thao tác trên tập tin gặp lỗi . Example Code: #include <stdio.h> int main(void) { FILE *fp; char ch; Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 3 /* mo tep tin de ghi */ fp = fopen("DUMMY.FIL", "w"); /*gay nen mot loi bang cach doc file*/ ch = fgetc(fp); printf("%c\n",ch); if (ferror(fp)) { /* xuat ra man hinh thong bao loi */ printf("Error reading from DUMMY.FIL\n"); /* xoa tin hieu loi */ clearerr(fp); } fclose(fp); return 0; } Hàm fclose Khai báo : Trích dẫn: int fclose(FILE *stream); Đóng tệp lại sau khi thao tác , stream là tên con trỏ tệp . Khi thành công hàm trả về 0 , trái lại trả về EOF ( hằng chỉ thị kết thúc tệp ) Example Code: #include <string.h> #include <stdio.h> int main(void) { FILE *fp; char buf[11] = "0123456789"; fp = fopen("DUMMY.FIL", "w"); fwrite(&buf, strlen(buf), 1, fp); /* dong tep */ fclose(fp); return 0; } Hàm feof Khai báo : Trích dẫn: Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 4 int feof(FILE *stream); Hàm dùng để kiểm tra con trỏ tệp có đến cuối tệp hay chưa . Nếu nó đến cuối tệp thì hàm trả về giá trị khác 0 , ngược lại trả về 0 Example Code: #include <stdio.h> int main(void) { FILE *stream; /* mo mot tep de doc */ stream = fopen("DUMMY.FIL", "r"); /* doc mot ky tu tu tep */ fgetc(stream); /*kiem tra xem cuoi tep hay chua */ if (feof(stream)) printf("We have reached end-of-file\n"); /* dong tep*/ fclose(stream); return 0; } Hàm ferror Khai báo : Trích dẫn: int ferror(FILE *stream); Kiểm tra lỗi thao tác trên tệp . Hàm trả về giá trị khác 0 nếu có lỗi , ngược lại trả về 0 . Example : Code: #include <stdio.h> int main(void) { FILE *stream; /* mo tep de ghi */ stream = fopen("DUMMY.FIL", "w"); /* gay ra mot loi bang cach doc*/ (void) getc(stream); if (ferror(stream)) /* kiem tra loi tren tep*/ { /* ghi loi ra man hinh*/ printf("Error reading from DUMMY.FIL\n"); Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 5 /* xoa tin hieu loi*/ clearerr(stream); } fclose(stream); return 0; } Hàm fflush Khai báo : Trích dẫn: int fflush(FILE *stream); Hàm dùng làm sạch vùng đệm của tệp . Nếu thành công hàm cho giá trị 0 , trái lại hàm trả về EOF Example Code: #include <string.h> #include <stdio.h> #include <conio.h> #include <io.h> void flush(FILE *stream); int main(void) { FILE *stream; char msg[] = "This is a test"; /* tao 1 tep */ stream = fopen("DUMMY.FIL", "w"); /*ghi mot vai du lieu len tep */ fwrite(msg, strlen(msg), 1, stream); clrscr(); printf("Press any key to flush DUMMY.FIL:"); getch(); flush(stream); printf("\nFile was flushed, Press any key to quit:"); getch(); return 0; } void flush(FILE *stream) { int duphandle; /* lam sach vung dem */ fflush(stream); Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 6 duphandle = dup(fileno(stream)); close(duphandle); } Hàm fgetc Khai báo : Trích dẫn: int fgetc(FILE *stream); Hàm dùng lấy 1 ký tự từ tệp do con trỏ tệp stream trỏ đến . Nếu thành công hàm trả về mã ASCII của ký tự đọc được . Nếu gặp lỗi hay gặp kết thúc tệp thì hàm trả về EOF . Example Code: #include <string.h> #include <stdio.h> #include <conio.h> int main(void) { FILE *stream; char string[] = "This is a test"; char ch; /* mo tep de ghi va doc */ stream = fopen("DUMMY.FIL", "w+"); /* ghi len tep mot chuoi */ fwrite(string, strlen(string), 1, stream); /* dat con tro tep len dau tep */ fseek(stream, 0, SEEK_SET); do { /* doc mot ky tu tu tep */ ch = fgetc(stream); /* in ra man hinh ky tu doc duoc */ putch(ch); } while (ch != EOF); fclose(stream); return 0; } Hàm fgetpos Khai báo : Trích dẫn: Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 7 int fgetpos( FILE *stream,fpos_t *pos ) Hàm dùng lấy vị trí con trỏ tệp ( ở byte thứ mấy ) lưu vào trong biến pos . Nếu thành công hàm trả về 0 , ngược lại hàm trả về giá trị khác 0 . Example Code: #include <stdlib.h> #include <stdio.h> void showpos(FILE *stream); int main(void) { FILE *stream; fpos_t filepos; /* mo file de doc ghi */ stream = fopen("DUMMY.FIL", "w+"); /* luu lai vi tri con tro tep hien thoi */ fgetpos(stream, &filepos); /* ghi du lieu len tep */ fprintf(stream, "This is a test"); /* in ra man hinh vi tri con tro hien thoi */ showpos(stream); /* dat lai vi tri con tro tep */ if (fsetpos(stream, &filepos) == 0) showpos(stream); else { fprintf(stderr, "Error setting file pointer.\n"); exit(1); } /* dong tep*/ fclose(stream); return 0; } void showpos(FILE *stream) { fpos_t pos; /* in ra man hinh vi tri con tro tep hien thoi */ fgetpos(stream, &pos); printf("File position: %ld\n", pos); } Hàm fgets Khai báo : Trích dẫn: Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 8 char *fgets(char *s,int n,FILE *fp); Hàm dùng để đọc một chuỗi ký tự dài n-1 ký tự từ tệp fp vào chuỗi s . Việc đọc kết thúc khi đã đọc đủ n-1 ký tự hay gặp dấu xuống dòng hay gặp kết thúc tệp . Sau khi đọc , chuỗi s sẽ được tự động thêm vào ký tự NULL vào cuối chuỗi . Hàm trả về điạ chỉ chuỗi s nếu thành công , trái lại trả về NULL . Example Code: #include <string.h> #include <stdio.h> int main(void) { FILE *stream; char string[] = "This is a test"; char msg[20]; /* mo tep de doc ghi */ stream = fopen("DUMMY.FIL", "w+"); /* ghi mot chuoi vao tep */ fwrite(string, strlen(string), 1, stream); /* dat con tro tep len dau tep */ fseek(stream, 0, SEEK_SET); /* doc mot chuoi tu tep */ fgets(msg, strlen(string)+1, stream); /* in chuoi ra man hinh */ printf("%s", msg); fclose(stream); return 0; } Hàm fopen Khai báo : Trích dẫn: FILE *fopen(char *filename,char *type ); Hàm dùng để mở tệp . Với filename là chuỗi chứa tên tệp cần mở ( bao gồm cả đường dẫn cụ thể ) . Lưu ý một chút với filename này . Nếu bạn nhập chuỗi từ bàn phím thì khác với bạn đánh sẵn nó trong code của bạn . Ví dụ tệp ta cần mở tên là abc.jpg nằm ở ổ C . Đối với đánh tên tệp từ bàn phím thì ta đánh như sau : C:\abc.jpg . Nhưng nếu ta soạn sẵn trong code thì ta soạn như sau : C:\\abc.jpg ( tức là thêm 1 gạch \ ) . Kiểu mở tệp có rất nhiều cách nhưng chung quy ta có các trường hợp sau cho kiểu văn bản : "r" : đọc "w" : ghi "r+" hay "w+" : đọc và ghi "a" : ghi bổ sung "a+" : đọc ghi bổ sung Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 9 Đối với mở file nhị phân bạn chỉ cần thêm chữ b vào sau các chuỗi trên . Nếu việc mở tệp thành công hàm cho địa chỉ con trỏ tệp , trái lại hàm trả về NULL . Example Code: #include <stdio.h> int main(void) { FILE *in, *out; if ((in = fopen("\\AUTOEXEC.BAT", "r")) == NULL) { fprintf(stderr, "Cannot open input file.\n"); return 1; } if ((out = fopen("\\AUTOEXEC.BAK", "w")) == NULL) { fprintf(stderr, "Cannot open output file.\n"); return 1; } while (!feof(in)) fputc(fgetc(in), out); fclose(in); fclose(out); return 0; } Hàm fprintf Khai báo : Trích dẫn: int fprintf(FILE *fp,char *s, ); Hàm này chức năng y chang như hàm printf nhưng thay vì ghi ra màn hình thì nó ghi lên tệp fp . Nếu thành công hàm trả về số byte ghi được lên tệp , trái lại hàm trả về EOF . Example Code: #include <stdio.h> int main(void) { FILE *stream; int i = 100; char c = 'C'; float f = 1.234; Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 10 /* mo tep de doc ghi */ stream = fopen("DUMMY.FIL", "w+"); /* ghi du lieu len tep */ fprintf(stream, "%d %c %f", i, c, f); /* dong tep */ fclose(stream); return 0; } Hàm fputc Khai báo : Trích dẫn: int fputc(int ch,FILE *fp); Hàm ghi một ký tự có mã ASCII là ch lên tệp fp . khi thành công trả về mã ASCII của ký tự được ghi , trái lại hàm cho EOF . Example Code: #include <stdio.h> int main(void) { char msg[] = "Hello world"; int i = 0; while (msg[i]) { fputc(msg[i], stdout); i++; } return 0; } Hàm fputs Khai báo : Trích dẫn: int fputs(char *s,FILE *fp); Hàm ghi lên tệp fp chuỗi s . Chú ý rằng chuỗi s nên kết thúc bằng ký tự NULL , nếu ko việc ghi lên có thể bị sai lệch . Ký tự NULL này để chỉ ra vị trí kết thúc tệp cho rõ ràng chứ nó ko được ghi lên tệp . Hàm trả về ký tự cuối cùng được ghi lên tệp nếu thành công , trái lại hàm cho EOF . Example Code: [...]... C Y!M: Information.Technology@yahoo.com.vn printf("Chuoi sau khi noi: %s",result); return 0; } 29 strncmp() tên hàm: strncmp() định nghĩa: PHP Code: #include int strncmp( const char *str1, const char *str2, size_t count ); Giống hàm strcmp() nhưng chỉ so sánh 'count' bytes cho trư c 30 strncpy() tên hàm: strncpy() định nghĩa: PHP Code: #include char *strncpy( char *to, const char... return 0; } 28 strncat() tên hàm: strncat() định nghĩa: PHP Code: #include char *strncat( char *str1, const char *str2, size_t count ); Nối chuôi c ban như hàm strcat() nhưng chỉ định số byte c a chuỗi str2 để nối vào str1 PHP Code: #include #include int main(void) { const char *str1="con ga"; const char *str2=" xcross87 is crazy"; char *result; result = strncat(str1,str2,9);... 11 ispunct() Mr.Vũ Kim Hiếu 23 Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Tên hàm: ispunct() Định nghĩa: PHP Code: #include int ispunct( int ch ); Punctuation Character là c c kí tự trong nhóm Graphical Character nhưng không phải là chữ c i hay số Đúng thì trả về kh c 0 Sai thì trả về 0 PHP Code: #include #include int main(void) { char x='\''; if(ispunct(x)) {... PHP Code: #include void *memcpy( void *to, const void *from, size_t count ); Copy 'count' kí tự từ 'from' sang 'to' Giá trị trả về là 'to' Chú ý: hàm này sẽ copy nguyên chính x c số bytes c n copy và không copy bytes cuối c ng c a string '\0' Vì vậy c n phải copy n+1 nếu muốn copy n byte PHP Code: #include #include int main(void) { const char from[]="Xcross87 is a chick... const char *str2 ); 24 strcpy() tên hàm: strcpy() định nghĩa: PHP Code: #include char *strcpy( char *to, const char *from ); Copy từ chuỗi 'from' sang chuỗi 'to' Chú ý: hàm dễ xảy ra buffer overflow PHP Code: #include #include int main(void) { const char *from="Xcross87 "; char *to; Mr.Vũ Kim Hiếu 30 Thö Vieän C Y!M: Information.Technology@yahoo.com.vn to = strcpy(to,from);... return 0; } Hàm fscanf Khai báo : Trích d n: int fscanf(FILE *fp,char *s, ); Hàm c ch c năng đ c dữ liệu từ tệp Làm vi c giống như hàm scanf nhưng thay vì đ c từ màn hình thì hàm fscanf đ c từ tệp thôi Hàm trả về 1 giá trị bằng số trường đ c đư c Example Code: #include #include int main(void) { int i; printf("Input an integer: "); /* doc mot so nguyen tu dong vao chuan */ Mr.Vũ... printf("%s\n", buf); fclose(stream); return 0; } Mr.Vũ Kim Hiếu 11 Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Hàm freopen Khai báo : Trích d n: FILE *freopen(char *filename,char *type,FILE *fp); Hàm này c ch c năng gán con trỏ tệp fp vào tệp filename Sau đó c thể mở đ c ghi trên tệp này thông qua con trỏ tệp fp Hàm này đ c biệt c ích khi ta muốn gán c c con trỏ tệp chuẩn ( stdin , stdout... *strrchr( const char *str, int ch ); Trả về sự xuất hiện cuối c ng c a kí tự 'ch' trong chuỗi 'str' 35 strstr(0 tên hàm: strstr() định nghĩa: PHP Code: #include size_t strspn( const char *str1, const char *str2 ); trả về con trỏ tới vị trí đầu tiên c a str2 trong str1 nếu tìm thấy trả về NULL nếu không thấy nếu độ dài c a str2 là 0 thì trả về độ dài c a str1 PHP Code: #include #include... printf("Ki tu %c la punct char",x); } else { printf("Ki tu %c ko phai punct char",x); } return 0; } 12 isspace() Tên hàm: isspace() Định nghĩa: PHP Code: #include int isspace( int ch ); Space Character là những kí tự tạo nên khoảng trắng (line feed, form feed ) Đúng thì trả về kh c 0 Sai thì trả về 0 PHP Code: #include #include int main(void) { char x='\x0B'; if(isspace(x)) {... Sau khi noi chuoi: %s ",str1); return 0; } 21 strchr() tên hàm: strchr() Định nghĩa: PHP Code: #include char *strchr( const char *str, int ch ); Hàm trả về giá trị chuỗi bắt đầu với 'ch' trong chuỗi 'str' Trả về NULL nếu không tìm thấy gì hết ví dụ dưới đây sẽ cho ra kết quả là : 'ss87' PHP Code: #include #include int main(void) { const char *str="Xcross87 "; char* found; . Thö Vieän C Y!M: Information.Technology@yahoo.com.vn Mr.Vũ Kim Hiếu 1 Thư Viện C Hi! Đây là Thư viện c c hàm trong C căn bản mà mình sưu tầm đư c! nó rất hay và hữu ích đó c c bạn. Hi. giúp ích cho c c bạn trong vi c h c lập trình C. Thân! Mr.Vũ Hiếu. 1. In/Out Danh sách c c hàm sử dụng In/Out 1.clearerr 2.fclose 3.feof 4.ferror 5.fflush 6.fgetc 7.fgetpos. thì ta soạn như sau : C: \abc.jpg ( t c là thêm 1 gạch ) . Kiểu mở tệp c rất nhiều c ch nhưng chung quy ta c c c trường hợp sau cho kiểu văn bản : "r" : đ c "w" : ghi

Ngày đăng: 02/04/2014, 06:20

TỪ KHÓA LIÊN QUAN

w