tổng hợp các hàm thư viện chuẩn của c++

22
ZORO Coparation Đây là 1 số hàm được dịch trong thư viện chuẩn của TC,các VD và từng câu đều là nguyên mẫu trong TC Hàm void abort( void ): Hàm abort được khai báo trong proccess.h dùng để in ra thông báo “Abnormal program terminal”. Ví dụ: Code: #include <stdio.h> #include <stdlib.h> int main(void) { printf("Calling abort()\n"); abort(); return 0; /* This is never reached */ } Hàm int abs(int n): trả lại giá trị tuyệt đối của n. Hàm int access(char *path, int mode ) : Được khai báo trong io.h và dùng để xác định xem file được chỉ ra theo char *path với mode truy nhập int mode có tồn tại thực hay không. Trong đó, int mode có thể nhận một trong các giá trị: 00 : Chỉ kiểm tra sự tồn tại của file 02 : Kiểm tra việc cho phép ghi. 03 : Kiểm tra việc cho phép đọc 04 : Kiểm tra việc cho phép đọc và ghi Đối với thư mục, hàm sẽ kiểm tra sự tồn tại của thư mục. Hàm trả lại giá trị 0 khi file có quyền truy nhập với mode đã cho, hàm trả lại giá trị -1 khi quyền truy nhập file theo mode gặp lỗi. Ví dụ: Code: #include <stdio.h> #include <io.h> int file_exists(char *filename); int main(void) { printf("Does NOTEXIST.FIL exist: %s\n", file_exists("NOTEXISTS.FIL") ? "YES" : "NO"); return 0; 1

Upload: alepro01

Post on 29-Nov-2014

1.661 views

Category:

Documents


11 download

DESCRIPTION

Bài viết tổng hợp nhiều hàm thư viện chuẩn trong ngôn ngữ lập trình C/C++. Rất hữu ích cho người mới học C++

TRANSCRIPT

Page 1: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Đây là 1 số hàm được dịch trong thư viện chuẩn của TC,các VD và từng câu đều là nguyên mẫu trong TC

Hàm void abort( void ): Hàm abort được khai báo trong proccess.h dùng để in ra thông báo “Abnormal program terminal”. Ví dụ:

Code:

#include <stdio.h>#include <stdlib.h>int main(void) {printf("Calling abort()\n"); abort(); return 0; /* This is never reached */}

Hàm int abs(int n): trả lại giá trị tuyệt đối của n.Hàm int access(char *path, int mode ) : Được khai báo trong io.h và dùng để xác định xem file được chỉ ra theo char *path với mode truy nhập int mode có tồn tại thực hay không. Trong đó, int mode có thể nhận một trong các giá trị:00 : Chỉ kiểm tra sự tồn tại của file02 : Kiểm tra việc cho phép ghi. 03 : Kiểm tra việc cho phép đọc04 : Kiểm tra việc cho phép đọc và ghiĐối với thư mục, hàm sẽ kiểm tra sự tồn tại của thư mục. Hàm trả lại giá trị 0 khi file có quyền truy nhập với mode đã cho, hàm trả lại giá trị -1 khi quyền truy nhập file theo mode gặp lỗi.Ví dụ:

Code:

#include <stdio.h>#include <io.h>int file_exists(char *filename);int main(void) { printf("Does NOTEXIST.FIL exist: %s\n", file_exists("NOTEXISTS.FIL") ? "YES" : "NO"); return 0;}int file_exists(char *filename){ return (access(filename, 0) == 0);}

Hàm double acos(double x): Được khai báo trong math.h dùng để tính arcosin(x). 

1

Page 2: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Hàm double asin( double x): /2]./2, Được khai báo trong math.h dùng để tính giá trị arsin(x) trong khoảng [- 

Hàm char *asctime( struct tm *blktime): Hàm được định nghĩa trong time.h dùng để biến đổi cấu trúc thời gian lưu trữ thành một xâu gồm 26 kí tự có dạng như sau: Wed Jan 02 02:03:55 1980\n\0. Trong đó cấu trúc thời gian tm được định nghĩa như sau:

Code:

struct tm { int tm_sec; /* Số giây sau một phút (0 . .59) */int tm_min; /* Số phút sau một giờ (0 . .59) */int tm_hour; /* Số giờ sau một ngày đêm ( 0 . .23) */ int tm_mday; /* Ngày trong một tháng ( 0. .31)*/int tm_mon; /* Số tháng kể từ tháng 1 ( 0 . .11)*/int tm_year; /* Số năm sau 1900 */ int tm_wday; /* Số ngày sau thứ bảy (0. .6)*/int tm_yday; /* Số ngày kể từ tháng 1 */ int tm_isdst; /* Cỡ thời gian- ngày- lưu trữ*/};Ví dụ:

Code:

#include <stdio.h>#include <string.h>#include <time.h>int main(void) { struct tm t; char str[80]; /* sample loading of tm structure */ t.tm_sec = 1; /* Seconds */ t.tm_min = 30; /* Minutes */ t.tm_hour = 9; /* Hour */ t.tm_mday = 22; /* Day of the Month */ t.tm_mon = 11; /* Month */ t.tm_year = 56; /* Year - does not include century */ t.tm_wday = 4; /* Day of the week */ t.tm_yday = 0; /* Does not show in asctime */ t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */ /* converts structure to null terminated string */ strcpy(str, asctime(&t)); printf("%s\n", str); return 0;}

Hàm int atoi(char *string): Được khai báo trong math.h dùng để chuyển đổi một xâu kí tự số thành một số nguyên.

Hàm int atol(char *string): Được khai báo trong math.h dùng để chuyển đổi một xâu kí tự số thành một số nguyên dài.

Hàm double atof( char *string): Được khai báo trong math.h dùng để chuyển đổi một xâu kí tự số thành một số thực có độ chính xác gấp đôi. 

2

Page 3: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Hàm char *itoa( int value, char *string, int radix): Được khai báo trong stdlib.h dùng để chuyển đổi số value thành một xâu kí tự số với cơ số là radix. Trong đó, 2 <= radix <=16.

Hàm char *utoa( unsigned long int value, char string, int radix): Được khai báo trong stdlib.h dùng để chuyển đổi số nguyên dài không dấu value thành một xâu kí tự số với cơ số là radix. Trong đó, 2 <= radix <=16.

Hàm char *ltoa( long int value, char string, int radix): Được khai báo trong stdlib.h dùng để chuyển đổi số nguyên dài value thành một xâu kí tự số với cơ số là radix. Trong đó, 2 <= radix <=16. Ví dụ:

Code:

#include <stdlib.h>#include <stdio.h>int main(void){ char string[25]; long value = 123456789L; ltoa(value,string,10); printf("number = %ld string = %s\n", value, string); return 0;}

Đã được chỉnh sửa gần đây bởi coder_gate : Ngày 07-03-2009 lúc 08:45 PM. Lý do: Hướng Dẫn Sử Dụng Các Hàm Thông Dụng Trên TC

  #2   25-07-2008, 09:59 PM

coder_gate Hack Girl_Pro  

Gia nhập ngày: 02 2008Nơi ở: hà nội 2 - ptit việt namBài viết: 1,046

 Re: Giới thiệu các hàm chuển trên TC

Hàm int biosdisk(int cmd, int drive, int head, int track, int sector,int nsects, void *buffer); được khai báo trong bios.h, sử dụng int 0x13 để cung cấp một số dịch vụ truy nhập đĩa. Trong đó, int cmd là số hiệu của dịch vụ; int drive là số hiệu ổ đĩa; int head là số hiệu đầu đọc ghi; int track là số hiệu rãnh; int sector là số hiệu sector bắt đầu; int sector là số hiệu sector cần đọc ghi hoặc so sánh; void far *buffer là vị trí bộ nhớ cần để đọc ra, ghi vào hoặc để so sánh.Ví dụ: 

3

Page 4: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Code:

#include <bios.h>#include <stdio.h>int main(void) { int result; char buffer[512]; printf("Testing to see if drive a: is ready\n"); result = biosdisk(4,0,0,0,0,1,buffer); result &= 0x02; (result) ? (printf("Drive A: Ready\n")) : (printf("Drive A: Not Ready\n")); return 0;}

Hàm int bioscom(int cmd, char abyte, int port); được khai báo trong bios.h dùng để điều khiển cổng truyền thông RS-232 (communications I/O). Trong đó giá trị của int cmd được xác định bởi một trong các giá trị sau:0 : Thiết lập byte dữ liệu truyền.1 : Gửi một byte ra đường truyền.2 : Nhận một byte với 8 bít giá trị từ cổng.3 : Thiết lập trạng thái cổng.int port là một số nguyên, trong đó port = 0 cho cổng COM1, port = 1 cho cổng COM2.Ví dụ:

Code:

#include <bios.h> #include <conio.h> #define COM1 0 #define DATA_READY 0x100 #define TRUE 1 #define FALSE 0 #define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00) int main(void) { int in, out, status, DONE = FALSE; bioscom(0, SETTINGS, COM1); cprintf("... BIOSCOM [ESC] to exit ...\n"); while (!DONE) { status = bioscom(3, 0, COM1); if (status & DATA_READY) if ((out = bioscom(2, 0, COM1) & 0x7F) != 0) putch(out); if (kbhit()) { if ((in = getch()) == '\x1B') DONE = TRUE; bioscom(1, in, COM1); } }

4

Page 5: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

return 0;}

Hàm int inport(int portid) Được khai báo trong dos.h dùng để đọc một từ 2byte từ cổng. 

Hàm int inportb( char byte): Được khai báo trong dos.h dùng để đọc một byte từ cổng.Ví dụ:

Code:

#include <stdio.h> #include <dos.h> int main(void){ int result; int port = 0; /* serial port 0 */ result = inport(port); printf("Word read from port %d = 0x%X\n", port, result); return 0; }

Hàm int outport( int portid): Được khai báo trong dos.h dùng để đưa một từ ra cổng.

Hàm int outportb(char byte): Được khai báo trong dos.h dùng để đưa một byte dữ liệu ra cổng.Ví dụ:

Code:

#include <stdio.h>#include <dos.h>int main(void){

int port = 0;char value = 'C';outportb(port, value);printf("Value %c sent to port number %d\n", value, port);return 0;

}

Hàm void calloc(size_t n, size_t size): Được khai báo trong alloc.h dùng để cấp phát không gian nhớ cho một mảng gồm n phần tử trong đó độ dài của mỗi phần tử là size byte.Ví dụ:

Code:

#include <stdio.h>#include <alloc.h>

5

Page 6: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

int main(void) { char *str = NULL; /* allocate memory for string */ str = calloc(10, sizeof(char)); /* copy "Hello" into string */ strcpy(str, "Hello"); /* display string */ printf("String is %s\n", str); /* free memory */ free(str); return 0;}

Hàm void *malloc(size_t sie_n): Được khai báo trong alloc.h dùng để cấp phát một khối bộ nhớ gồm size_n byte. Hàm trả lại con trỏ tới vùng bộ nhớ đã được cấp phát nếu thực hiện thành công, hàm trả lại con trỏ NULL nếu việc cấp phát bộ nhớ không thành công.Ví dụ: 

Code:

#include <stdio.h>#include <string.h>#include <alloc.h>#include <process.h>int main(void){

char *str;/* allocate memory for string */if ((str = malloc(10)) == NULL){

printf("Not enough memory to allocate buffer\n");exit(1); /* terminate program if out of memory */

}/* copy "Hello" into string */strcpy(str, "Hello");/* display string */printf("String is %s\n", str);/* free memory */free(str);return 0;

}

__________________

Chuyển Từ MFC sang QT và Wxwidgets Hướng dẫn hook Kernel Mode   LTVhttp://www.thietkewebsite.net/dnews.php?cnid=9&nid=5374

  #3  

 25-07-2008, 10:03 PM

6

Page 7: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

coder_gate Hack Girl_Pro  

Gia nhập ngày: 02 2008Nơi ở: hà nội 2 - ptit việt namBài viết: 1,046

 Re: Giới thiệu các hàm chuển trên TC

Hàm void realloc(void *newblk, size_t size) : Được khai báo trong alloc.h dùng để cấp phát lại vùng bộ nhớ đã được cấp phát cho con trỏ bởi hàm malloc() hoặc calloc() trước đó. Hàm trả lại con trỏ là địa chỉ của vùng bộ nhớ mới được cấp phát, trả lại con trỏ NULL nếu việc cấp phát lại không thành công. Con trỏ tới vùng bộ nhớ mới có thể có địa chỉ khác với địa chỉ vùng bộ nhớ trước đó đã được cấp phát cho con trỏ. Ví dụ :

Code:

#include <stdio.h>#include <alloc.h>#include <string.h>int main(void){

char *str;/* allocate memory for string */str = malloc(10);/* copy "Hello" into string */strcpy(str, "Hello");printf("String is %s\n Address is %p\n", str, str);str = realloc(str, 20);printf("String is %s\n New address is %p\n", str, str);/* free memory */free(str);return 0;

}

Hàm unsigned int FP_OFF(char far *address): Được khai báo trong dos.h dùng để đặt (hay lấy) địa chỉ offset của con trỏ address. Trong model bộ nhớ nhỏ (small) và vừa (medium), FP_OFF chỉ làm việc chính xác khi address là con trỏ xa nằm trong segmen dữ liệu chuẩn. Hàm FP_OFF cho lại địa chỉ offset của con trỏ address.Ví dụ: 

Code:

/* FP_OFF */#include <dos.h>#include <stdio.h>int main(void){ char *str = "fpoff.c"; printf("The offset of this file in memory\ is: %Fp\n",

7

Page 8: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

FP_OFF(str)); return 0;}

Hàm unsigned int FP_SEG(char far *address): Được khai báo trong dos.h dùng để đặt (hay lấy) địa chỉ segmen của con trỏ address. Trong model bộ nhớ nhỏ (small) và vừa (medium), FP_SEG chỉ làm việc chính xác khi address là con trỏ xa nằm trong segmen dữ liệu chuẩn. Hàm FP_SEG cho lại địa chỉ segmen của con trỏ address.Ví dụ:

Code:

/* FP_SEG */

#include <dos.h>#include <stdio.h>int main(void) { char *filename = "fpseg.c";printf("The offset of this file in memory\ is: %Fp\n", FP_SEG(filename)); return(0);}

Hàm void far *MK_SEG(unsigned in seg, unsigned int off): Được khai báo trong dos.h dùng để truy nhập tới vùng bộ nhớ có địa chỉ segmen và địa chỉ offset được chỉ ra bởi seg, off. Ví dụ:

Code:

/* MK_FP */#include <dos.h>#include <graphics.h>int main(void) {int gd, gm, i; unsigned int far *screen; detectgraph(&gd, &gm); if (gd == HERCMONO) screen = MK_FP(0xB000, 0); else screen = MK_FP(0xB800, 0); for (i=0; i<26; i++) screen[i] = 0x0700 + ('a' + i); return 0;}

Hàm void movedata(unsigned srcseg,unsigned srcoff,

8

Page 9: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

unsigned destseg,unsigned destoff,size_t n);Được khai báo trong mem.h dùng để copy n byte từ miền bộ nhớ có địa chỉ seg:off tới miền bộ nhớ mới có địa chỉ destseg:destoff.

Code:

#include <mem.h> #define MONO_BASE 0xB000 /* saves the contents of the monochrome screen in buffer */ void save_mono_screen(char near *buffer) { movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2); } int main(void) { char buf[80*25*2]; save_mono_screen(buf); }

Hàm void movmem(void *src, void *dest, unsigned length); đựoc khai báo trong mem.h dùng để dịch chuyển một khối bộ nhớ có độ dài n byte từ con trỏ scr tới con trỏ dest.Ví dụ:

Code:

#include <mem.h> #include <alloc.h> #include <stdio.h> #include <string.h> int main(void) { char *source = "Borland International"; char *destination; int length; length = strlen(source); destination = malloc(length + 1); movmem(source,destination,length); printf("%s\n",destination); return 0; }

__________________

Chuyển Từ MFC sang QT và Wxwidgets Hướng dẫn hook Kernel Mode   LTVhttp://www.thietkewebsite.net/dnews.php?cnid=9&nid=5374

  #4  

 25-07-2008, 10:10 PM

9

Page 10: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

coder_gate Hack Girl_Pro  

Gia nhập ngày: 02 2008Nơi ở: hà nội 2 - ptit việt namBài viết: 1,046

 Re: Giới thiệu các hàm chuển trên TC

--------------------------------------------------------------------------------

Hàm void *memcpy(void *dest, const void *src, size_t n); được khai báo trong mem.h dùng để Copy một block gồm bytes từ con trỏ src tới con trỏ dest.

Code:

#include <stdio.h> #include <string.h> int main(void) { char src[] = "******************************"; char dest[] = "abcdefghijlkmnopqrstuvwxyz0123456709"; char *ptr; printf("destination before memcpy: %s\n", dest); ptr = memcpy(dest, src, strlen(src)); if (ptr) printf("destination after memcpy: %s\n", dest); else printf("memcpy failed\n"); return 0;}

Hàm int gettext(int left, int top, int right, int bottom, void *destin); được khai báo trong conio.h dùng để copy các dòng văn bản ở mode text từ màn hình có toạ độ (left, top), (right, bottom) vào vùng bộ nhớ trỏ bởi destin. Hàm trả lại con trỏ NULL nếu thực hiện không thành công.

Hàm int puttext(int left, int top, int right, int bottom, void *destin); được khai báo trong conio.h dùng để hiển thị nội dung miền nhớ trong buffer lên màn hình xác định bởi hình chữ nhật có toạ độ (left, top), (right, bottom). Hàm trả lại con trỏ NULL nếu thực hiện không thành công.Ví dụ:

Code:Code:

#include <conio.h> char buffer[4096]; int main(void) {

10

Page 11: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

int i; clrscr(); for (i = 0; i <= 20; i++) cprintf("Line #%d\r\n", i); gettext(1, 1, 80, 25, buffer); gotoxy(1, 25); cprintf("Press any key to clear screen..."); getch(); clrscr(); gotoxy(1, 25); cprintf("Press any key to restore screen..."); getch(); puttext(1, 1, 80, 25, buffer); gotoxy(1, 25); cprintf("Press any key to quit..."); getch(); return 0;}

Hàm int chdir(char *path) : Được khai báo trong sys\type.h dùng để thay đổi từ thư mục hiện thời sang một thư mục mới được chỉ ra theo path. Ví dụ:

Code:Code:

#include <stdio.h>#include <stdlib.h>#include <dir.h>char old_dir[MAXDIR];char new_dir[MAXDIR];int main(void){ if (getcurdir(0, old_dir)){ perror("getcurdir()"); exit(1); } printf("Current directory is: \\%s\n", old_dir); if (chdir("\\")){ perror("chdir()"); exit(1); } if (getcurdir(0, new_dir)){ perror("getcurdir()"); exit(1); } printf("Current directory is now: \\%s\n", new_dir); printf("\nChanging back to orignal directory: \\%s\n", old_dir); if (chdir(old_dir)){ perror("chdir()"); exit(1); } return 0;}

Hàm int mkdir(char *path): Được khai báo trong dir.h dùng để khởi tạo một thư mục mới được chỉ qua path. Hàm trả lại giá trị 0 nếu thư mục được tạo ra và trả lại giá trị -1 nếu gặp lỗi.

Hàm int rmdir(char *path): Được khai báo trong dir.h dùng để

11

Page 12: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

loại bỏ thư mục được chỉ ra trong path. Hàm trả lại giá trị 0 nếu thư mục bị loại bỏ, trả lại giá trị -1 nếu gặp lỗi.Ví dụ:

Code:

#include <stdio.h>#include <conio.h>#include <process.h>#include <dir.h>int main(void) { int status; clrscr(); status = mkdir("asdfjklm"); (!status) ? (printf("Directory created\n")) : (printf("Unable to create directory\n")); getch(); system("dir"); getch(); status = rmdir("asdfjklm"); (!status) ? (printf("Directory deleted\n")) : (perror("Unable to delete directory")); return 0;}

Hàm int getcurdir(int drive, char *directory): Được khai báo trong dir.h dùng để nhận đường dẫn tới thư mục hiện tại được lưu trữ trong directory. Trong đó, drive = 0 để chỉ ổ đĩa hiện tại, drive = 1 cho ổ A, drive = 2 cho ổ B . .Hàm trả lại giá trị 0 nếu thực hiện thành công, trả lại giá trị -1 nếu gặp lỗi. Ví dụ:

Code:Code:

#include <dir.h>#include <stdio.h>#include <string.h>char *current_directory(char *path) { strcpy(path, "X:\\"); /* fill string with form of response: X:\ */ path[0] = 'A' + getdisk(); /* replace X with current drive letter */ getcurdir(0, path+3); /* fill rest of string with current directory */ return(path);}int main(void) { char curdir[MAXPATH]; current_directory(curdir); printf("The current directory is %s\n", curdir); return 0;}

12

Page 13: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

__________________

Chuyển Từ MFC sang QT và Wxwidgets Hướng dẫn hook Kernel Mode   LTVhttp://www.thietkewebsite.net/dnews.php?cnid=9&nid=5374

  #5  

 25-07-2008, 10:14 PM

coder_gate Hack Girl_Pro  

Gia nhập ngày: 02 2008Nơi ở: hà nội 2 - ptit việt namBài viết: 1,046

 Re: Giới thiệu các hàm chuển trên TC

Hàm int chmod( char *path, int mode): Được khai báo trong io.h dùng để thay đổi quyền truy nhập file đang tồn tại. Trong đó, char *path là đường dẫn tới file đang tồn tại, int mode là mode mới được đặt quyền truy nhập file; int mode có thể nhận giá trị từ một trong các hằng sau : S_IWRITE (được phép ghi), S_READ (được phép đọc). Hàm cho lại giá trị 0 nếu phép đặt quyền truy nhập thành công, hàm cho lại giá trị -1 nếu gặp lỗi.Ví dụ:

Code:Code:

#include <sys\stat.h>#include <stdio.h>#include <io.h>void make_read_only(char *filename);int main(void){

make_read_only("NOTEXIST.FIL");make_read_only("MYFILE.FIL");return 0;

}void make_read_only(char *filename){

int stat;stat = chmod(filename, S_IREAD);if (stat)

printf("Couldn't make %s read-only\n", filename);else

printf("Made %s read-only\n", filename);}

Hàm int unlink( const char *path): Được khai báo trong io.h dùng để loại bỏ một file được chỉ ra trong path. Hàm sẽ thực hiện không thành công nếu file không tồn tại hoặc file có thuộc tính readonly. Hàm trả lại giá trị 0 nếu thực hiện thành công, trả lại giá trị -1 nếu gặp lỗi.

13

Page 14: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Hàm int remove(const char *path): Được khai báo trong io.h dùng để loại bỏ file được chỉ ra trong path. Hàm trả lại giá trị 0 nếu thực hiện thành công, trả lại giá trị -1 nếu việc xoá không thành công.Ví dụ :

Code:Code:

#include <stdio.h>#include <io.h>int main(void){

FILE *fp = fopen("junk.jnk","w");int status;fprintf(fp,"junk");status = access("junk.jnk",0);if (status == 0)

printf("File exists\n");else

printf("File doesn't exist\n");fclose(fp);unlink("junk.jnk");status = access("junk.jnk",0);if (status == 0)

printf("File exists\n");else

printf("File doesn't exist\n"); return 0;}

Hàm int rename( char *oldname, char newname): Được khai báo trong io.h dùng để đổi tên file hay thư mục được chỉ ra trong oldname thành tên file mới hoặc thư mục mới được chỉ ra trong newname. Hàm cho lại giá trị 0 nếu thực hiện thành công, cho lại giá trị -1 nếu thực hiện không thành công.Ví dụ:

Code:Code:

#include <io.h>int main(void){

char oldname[80], newname[80];/* prompt for file to rename and new name */printf("File to rename: ");gets(oldname);printf("New name: ");gets(newname);/* Rename the file */if (rename(oldname, newname) == 0)

printf("Renamed %s to %s.\n", oldname, newname);else

perror("rename");return 0;

}

14

Page 15: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Hàm void getdate(struct date *datep): Được khai báo trong dos.h dùng để nhận ngày tháng hiện tại của hệ thống vào cấu trúc date. Ví dụ: 

Code:Code:

#include <dos.h>#include <stdio.h>int main(void) {struct date d; getdate(&d); printf("The current year is: %d\n", d.da_year); printf("The current day is: %d\n", d.da_day); printf("The current month is: %d\n", d.da_mon); return 0;}

Hàm void setdate(struct date *datep): Được khai báo trong dos.h dùng để thiết lập ngày tháng hiện tại của hệ thống. Ví dụ: 

Code:Code:

#include <stdio.h>#include <process.h>#include <dos.h>int main(void) { struct date reset; struct date save_date; getdate(&save_date); printf("Original date:\n"); system("date"); reset.da_year = 2001; reset.da_day = 1; reset.da_mon = 1; setdate(&reset); printf("Date after setting:\n"); system("date"); setdate(&save_date); printf("Back to original date:\n"); system("date"); return 0;}

Hàm void gettime(struct time *timep): Được khai báo trong dos.h dùng để nhận thời gian hiện tại của hệ thống. Ví dụ:

Code:Code:

#include <stdio.h>

15

Page 16: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

#include <dos.h>int main(void) {

struct time t;gettime(&t);printf("The current time is: %2d:%02d:%02d.%02d\n",

t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);return 0;

}

Hàm void settime(struct time *timep): Được khai báo trong dos.h dùng để thiết lập thời gian hiện tại của hệ thống. Ví dụ:

Code:Code:

#include <stdio.h>#include <dos.h>int main(void) {

struct time t;gettime(&t);printf("The current minute is: %d\n", t.ti_min);printf("The current hour is: %d\n", t.ti_hour);printf("The current hundredth of a second is: %d\n",

t.ti_hund);printf("The current second is: %d\n", t.ti_sec);/* Add one to the minutes struct element and then call settime

*/t.ti_min++;settime(&t);return 0;

}

Hàm char *gets(char *string): Được khai báo trong stdio.h dùng để nhận một xâu kí tự từ bàn phím vào string. Khác với sacnf(), gets() chấp nhận xâu kí tự chứa dấu trống. Ví dụ:

Code:Code:

#include <stdio.h>#include <stdlib.h>

int main(void){ printf("Calling abort()\n"); abort(); return 0; /* This is never reached */}#include <stdio.h>int main(void){ char string[80]; printf("Input a string:");

16

Page 17: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

gets(string); printf("The string input was: %s\n",string); return 0;}

Hàm int putch(): Được khai báo trong conio.h dùng để đưa kí tự c ra thiết bị ra chuẩn. 

Hàm int puts(char *string): Được khai báo trong stdio.h dùng để đưa một xâu kí tự ra thiết bị ra chuẩn.

Hàm int fputs(char *string, FILE *fp): Được khai báo trong stdio.h dùng để ghi một xâu kí tự vào tệp được trỏ bởi con trỏ fp.

Hàm int fputc( char c, FILE *fp): Được khai báo trong stdio.h dùng để ghi một kí tự vào tệp trỏ bởi con trỏ fp.

Hàm int strlen(char *string): Được khai báo trong string.h dùng để tính độ dài xâu kí tự string.

Hàm char *strcpy(char *str1, char *str2): Được khai báo trong string.h dùng để copy xâu str2 vào xâu str1.

Hàm int strcmp(char *str1, char *str2): Được khai báo trong string.h dùng để so sánh hai xâu kí tự. Hàm trả lại giá trị lớn hơn 0 nếu str1 lớn hơn str2, hàm trả lại giá trị âm nếu str1 nhỏ hơn str2, hàm trả lại giá trị 0 nếu str1=str2.

Hàm char *strcat(char *str1, char *str2): Được khai báo trong string.h dùng để nối xâu kí tự str2 vào sau xâu sâu str1.

17

Page 18: Tổng hợp các hàm thư viện chuẩn của C++

ZORO Coparation

Hàm int strstr( char *str1, char *str2): Được khai báo trong string.h dùng để xác định xâu str2 có thuộc xâu str1 hay không. Hàm trả lại vị trí của xâu str2 trong xâu str1.

Hàm char *strupr(char *string): Được khai báo trong string.h dùng để biến đổi xâu kí tự string từ in thường thành in hoa.

Hàm char *strlwr(char *string): Được khai báo trong string.h dùng để biến đổi xâu kí tự string từ in hoa sang in thường.

18