|
函数大全(c开头)
5 `% t, F* u7 t0 f3 b- j/ ?
* P) Q, N; I' F2 Z/ m0 k/ W$ @2 x函数名: cabs
W3 k' x" g5 s d; s% G功 能: 计算复数的绝对值 ' J# p3 L K- |4 K# p
用 法: double cabs(struct complex z); % i4 S) c4 t7 R2 i+ ^
程序例: : [" h( d O. M4 F8 f
#include
* L/ B& D7 [2 Y/ `#include 5 v8 ?, ]# Z3 s0 I
int main(void)
) D: c' ^! C6 T1 g* q( q{ . ]! t/ B K6 C }! F7 a
struct complex z; 9 Q1 B( o& X* A9 T( t1 b" x
double val;
4 S9 @% T( o: w7 f4 uz.x = 2.0; 0 a s7 Q) N$ j H) A
z.y = 1.0;
1 J. A! f5 X! d) M# g' dval = cabs(z); % `7 l" y6 k8 r
printf("The absolute value of %.2lfi %.2lfj is %.2lf", z.x, z.y, val); 1 |% a6 r* e9 ~/ O
return 0;
! b) }% @" U @/ J9 g9 ?' _- q}
$ y1 @4 E9 ~6 B, g; |- O9 V3 E9 ]( y# p3 }8 @1 O
! E+ _/ H' q9 z0 @ - x, h' a& v) \
函数名: calloc
6 Q& [1 ]; \5 C, W6 p# n功 能: 分配主存储器 0 S' g, E' f* d- Q) D4 `
用 法: void *calloc(size_t nelem, size_t elsize);
. K: u& \# K. G7 P; {) _* ]+ C: a程序例:
7 A4 M5 d' H9 B) x1 y#include ( N: ]6 r3 {# Q1 q% p, |6 W
#include
! @3 O6 z( }7 z, b X3 J Hint main(void) 4 g. \8 I$ T4 i, r3 ~
{ + W$ k( u( i! c3 e
char *str = NULL; # @+ ?$ T; K: u6 L, Y
/* allocate memory for string */ 0 ]1 W; W0 Q' ^9 Z8 s) i6 ~
str = calloc(10, sizeof(char));
+ @% C j8 e: X' z) i' ?/* copy "Hello" into string */
( s6 Z% Y& A- P# istrcpy(str, "Hello");
, Y( s8 E9 h( q( B/ D% a0 L, o' {/* display string */
, S& o1 w l3 q+ d9 Jprintf("String is %s\n", str);
0 R# }- w$ m6 {& j/* free memory */
/ {3 f( Q4 l/ `$ ^6 R# gfree(str); & w: w: e, z8 ]/ z2 ^3 o
return 0;
8 s4 A$ f- Q0 z9 B/ M! E0 H}
6 w X7 u7 o* ~/ s! Y- S' i' q: ?- R
; q; k) r3 ]! A9 |$ M4 F: i: l/ r# z
- g4 d! P& u4 P8 X 0 ]8 ~3 m* A) P! R- n1 C" E2 g8 w! X$ A/ P
函数名: ceil
1 m: \: p/ K, x; _0 ^& h功 能: 向上舍入
5 |7 q% ?, r+ c& U# o用 法: double ceil(double x); ; E1 i) U* a* {, J
程序例:
+ F' e! W; [ W1 {0 E6 G; D' D# p#include
) i( \5 m) T+ ?4 @9 Y2 y0 O( e#include 5 c8 q& S# e* L8 k. b! X2 |2 l! l
int main(void) 8 T$ R* h9 X; \7 k
{ * Y- i( D3 e. b- z
double number = 123.54;
5 w6 k+ i0 F; v7 ~0 Hdouble down, up;
4 M* h: M' x; t- |* Mdown = floor(number); ; s- i# C3 i8 t0 P, t: j, D
up = ceil(number); 4 E9 Y0 U! E/ Y- F
printf("original number %5.2lf\n", number); , ]1 s9 @ }9 X# w
printf("number rounded down %5.2lf\n", down); $ P) ~! H" i, Y& X+ T) x
printf("number rounded up %5.2lf\n", up); , f! ]3 F3 w( @
return 0; / y& @% ]/ }+ k9 a: D! [! T0 e
} " Z9 P5 T5 W+ N. ~* K$ u, h
. u0 I8 ? b' d" `: P0 ^0 N8 ?+ h% v5 {) L
1 g6 c S% D0 l2 \# @3 X
函数名: cgets & \" N4 s, ?; V' H
功 能: 从控制台读字符串 5 q, d. s- |% W, H; T# E
用 法: char *cgets(char *str);
- \ C2 i9 C$ @+ R程序例:
6 Z2 B6 g# y$ M4 f#include
: P; W) m! E5 I \+ `#include ; E9 H2 g P1 m% K: o& E
int main(void) - R. f; D$ D5 C2 b4 u0 @
{ 3 j" ?+ ^' U; L' n+ r% \7 |7 }
char buffer[83];
$ x2 A8 A4 Z8 x% Q: @4 U: Ychar *p; / ]) [3 p; h; d
/* There's space for 80 characters plus the NULL terminator */ ) K6 l& ~: O5 E' u8 j4 C
buffer[0] = 81; ( l. ^/ U3 W2 V0 r( y7 h/ @
printf("Input some chars:"); " D7 C) t2 X. ~3 X' x
p = cgets(buffer); 7 P3 A; E& g' E5 t. R/ C5 l
printf("\ncgets read %d characters: \"%s\"\n", buffer[1], p); : x9 `" p0 p8 c) W" Z
printf("The returned pointer is %p, buffer[0] is at %p\n", p, &buffer); ( h' [3 H% M8 Z: i/ f+ D6 G" b" S' d
/* Leave room for 5 characters plus the NULL terminator */ * U( r: o( L( Y4 p& ?5 v
buffer[0] = 6;
/ D! [# u5 f4 u( Hprintf("Input some chars:"); 5 ]4 b7 e, Y' D! h. c
p = cgets(buffer);
' E# I& D9 w" E8 H, {printf("\ncgets read %d characters: \"%s\"\n", buffer[1], p); 8 Z8 g$ d# g6 }. E& M3 @
printf("The returned pointer is %p, buffer[0] is at %p\n", p, &buffer);
! M) k7 N; z1 s3 Z, S2 freturn 0; 1 w$ o8 C) Y! Z4 y& }( V
}
- `: U4 y; ~% H) P3 F7 z% r, q, W2 z& V. K7 Y: d
+ {7 M. D: Q& P1 A3 V$ ]
7 w- B6 C9 H' f: j2 w) \1 i
函数名: chdir ' o9 Y9 X1 E* o2 a) R
功 能: 改变工作目录
# ~8 W% u+ ]6 e. L# m. q5 ^用 法: int chdir(const char *path);
+ \! S! K- }2 b' ?7 e7 P程序例: 8 s. y$ M7 B: Y7 v, o% V6 d4 A
#include ! n0 p; i3 A0 U* C# h- f. u; v+ u
#include 8 m' d, Z( m. u0 w
#include
) L0 M/ V5 T0 ? f, Pchar old_dir[MAXDIR];
& @7 }+ j0 H: {8 E: T8 k$ wchar new_dir[MAXDIR];
t+ ]2 `, L& i) u( z8 Cint main(void)
/ C) l: H4 m+ Y2 k: Z% f{
6 N6 T5 @* V" i' I4 p6 aif (getcurdir(0, old_dir))
]: t# j# v2 z) k! p: i{
4 \2 v0 O' v( Q' s6 T! ?& Eperror("getcurdir()"); 4 K; }$ S L o# V2 m* \: r. F; e
exit(1);
8 ~0 k9 i3 S! U9 @9 X" v} 2 F. _& n. g; w! w/ b4 c
printf("Current directory is: \\%s\n", old_dir); " @6 p: b( S, l2 y5 ^$ \, }
if (chdir("\\"))
; Y% U+ [4 h. L5 X$ Z3 Z{
# d; w4 d9 V& a' Z. r A% u4 Hperror("chdir()"); + \! l$ b& J! L& }8 ^7 ]
exit(1);
% {0 k( d5 `- C+ y- @}
7 |( ^# U% U, T |8 @% \( Kif (getcurdir(0, new_dir)) . l+ D; u6 ]+ y6 ]( u" }
{ 8 U- ]- x k% g2 _
perror("getcurdir()"); : I9 _/ D6 M! h4 N/ w
exit(1);
# m6 ] ]) A1 V! j} ( {7 l e2 f9 e9 a$ g$ [& i
printf("Current directory is now: \\%s\n", new_dir);
3 S6 s. E$ i4 nprintf("\nChanging back to orignal directory: \\%s\n", old_dir);
. R' F# E% n9 G3 E! X/ q9 Pif (chdir(old_dir))
6 [+ U# ?8 z4 }. ] U6 d E{ : ]% L3 z. V0 A0 s# [9 b# s
perror("chdir()");
4 B2 l$ \, c) {9 v7 I; @+ hexit(1);
! a# d8 Z- r9 p6 }}
3 a& M$ H" e2 breturn 0; 1 c. \7 j. `2 S
}
* I- W$ h t7 i I) L
, o! `. x2 C9 L2 X; \, }+ Q
& a. k5 ?" _6 J0 X2 H2 Q" S4 {4 T函数名: _chmod, chmod 2 d9 \3 ~3 Y4 N2 B, g# b. ^6 j3 ]
功 能: 改变文件的访问方式
( f1 J& h2 ]3 I' @9 \) J% g7 N2 L B用 法: int chmod(const char *filename, int permiss); 1 Q8 ?9 u; {7 M% L1 d8 g+ y, a! @
程序例:
. h! J; t7 g! n+ `6 [ \/ ^$ a#include
' M( C1 |4 X9 X. B) ], Z, M#include
- F0 p; p: j8 K- b' Z4 s; |% h#include
: ]- A* m7 T; d# W6 o9 W7 n0 }$ nvoid make_read_only(char *filename); ' S2 g9 @8 `* c& g" P3 Q
int main(void)
, f' I" _ K- e4 `7 P{ 9 M! {' {2 g/ }- `6 z
make_read_only("NOTEXIST.FIL"); 2 F5 v& ^( z! R* I
make_read_only("MYFILE.FIL");
: }3 c' A! i+ L( Freturn 0;
5 L k3 Q* [) ^/ `% `$ [+ H}
$ p% F* f- @* N( o. ~void make_read_only(char *filename)
! U3 N1 i, j- F- d4 R* c{ ( z% D0 ]4 z& {) L3 `6 r0 t
int stat;
- G( H' r' e( ^! Y' A+ f, p8 `stat = chmod(filename, S_IREAD);
& D+ n- a" {4 U; q2 J) x7 B3 P4 {# ]if (stat)
# |/ A# ^0 I9 lprintf("Couldn't make %s read-only\n", filename); + G. Y3 v v$ X( Y
else 7 a4 I$ ?" I x% T) F3 @1 [, ]
printf("Made %s read-only\n", filename);
$ c9 [# V5 q. d0 T# w" j3 h- H}
! D9 w2 x! o7 H) @' l9 x8 y E, j* c, K: R6 ]% `+ F
; M$ Z! a% V$ X5 W
& B4 u1 x8 W* h) ?" P( t7 c
函数名: chsize
- p- `5 @% a, @# W功 能: 改变文件大小
' F, L7 x% N& C9 L用 法: int chsize(int handle, long size); 2 v. }& Q% ?9 R8 e- a
程序例: $ O- y1 C, O3 B- }
#include
1 d& h n! K p" U0 P3 m g* a#include
0 ]% z8 z7 e! ?8 h#include ! z ]' j/ E3 q) t& W
int main(void)
6 y8 i7 I6 N2 g* C{
' {( Q# r& K9 \0 yint handle; ! Q% c! K" R: U) W8 }
char buf[11] = "0123456789"; 1 A/ @7 N' |9 r
/* create text file containing 10 bytes */
9 l. K4 T! ^* J. L9 ghandle = open("DUMMY.FIL", O_CREAT);
" G4 v: R8 d1 N# C: Pwrite(handle, buf, strlen(buf)); " S$ X& K" O6 I0 y( F& ^
/* truncate the file to 5 bytes in size */ ; x/ n$ o0 _) i/ G: I( B
chsize(handle, 5);
1 z$ `7 k$ w d' E/* close the file */
* _9 h4 _: V0 O) Q* ?close(handle); 7 J3 b# k% ] Q! L7 _1 J
return 0;
. d9 k- r1 x5 R3 _3 I}
6 g/ c7 p* R/ ~) i: L8 ?" J; {2 b! `* Z' D% ^) b1 t* k; G% Q, d$ K, J
% `- ?; v+ x4 J2 \, j* [* P函数名: circle ) U4 m' e t# R0 j5 \
功 能: 在给定半径以(x, y)为圆心画圆 + c0 X5 y \( J8 ?, e' w( U
用 法: void far circle(int x, int y, int radius);
' a0 d0 Y* T- n4 f" o- C; p# }程序例:
& H: D' D1 P: { |. s5 d+ ^#include 3 j9 z! g9 ?( S, `' p1 J
#include 7 p! l& k2 C! b! u: Z1 y# a& _
#include
, Y6 h' b7 y# f" b& b#include . |$ l6 n) R, G, x4 ]4 f
int main(void)
& h, Z" B# ?' x' {5 _{ 3 l5 t: [" W. I) a0 I1 m$ Y
/* request auto detection */
% p7 Z0 _- R, R; P6 x7 |int gdriver = DETECT, gmode, errorcode; l( v2 Q/ W# w; l6 u1 j ^- Z7 c
int midx, midy;
# c. f4 M, R! o# t T4 jint radius = 100;
+ o; ~0 E, D# u5 |5 M8 E$ h/* initialize graphics and local variables */
+ |$ C- M* F8 ~- S9 r" Sinitgraph(&gdriver, &gmode, ""); ; a4 u' A1 C) k+ ]6 w, V ]
/* read result of initialization */
( g! v! x. u: B8 P$ I0 o! M5 derrorcode = graphresult(); ]6 U1 b6 T: L5 U. p& _' {
if (errorcode != grOk) /* an error occurred */
' A, F- H c5 O# f9 Z" w{
6 k8 }+ x! B" r; V% Y# o& |# r& Sprintf("Graphics error: %s\n", grapherrormsg(errorcode)); 3 G# H. O! X) t+ X! T+ T, x) ^
printf("Press any key to halt:"); ) h, ?4 Y7 Y: U5 i
getch(); . e! x, t$ w# N# v6 A
exit(1); /* terminate with an error code */ $ N( M s8 Q+ i P
} # W* l* I! [, f( P( x2 G! X3 b0 v
midx = getmaxx() / 2; 1 a) m# V! e4 X9 @8 q. ]% D5 H
midy = getmaxy() / 2; 5 ]7 _) v& f7 R: W
setcolor(getmaxcolor());
" I# B+ Y: _8 p2 p4 V3 P1 i/* draw the circle */
9 |$ w x1 U/ ]$ V6 acircle(midx, midy, radius);
# r! e) `' _/ r, f$ ?# y+ F' p/* clean up */
, r. S) F" |+ m. y! p/ P% Xgetch(); 1 T2 n5 O5 |/ r8 _9 m4 p' k( F/ v
closegraph();
# p' x: Q" U1 Mreturn 0; 0 l% Q% {& m' e7 K" [6 H
}
; h* X0 E! f( r! `- E6 h) ], e+ J' P
$ C6 X6 @8 I4 P% L
4 ~, o* b+ G# i: B
函数名: cleardevice 2 O2 X: x% W- D' _5 M# |/ r6 d
功 能: 清除图形屏幕
8 H+ @1 [) a, ^2 M6 x) ?7 J用 法: void far cleardevice(void); - N) k8 r, _. I. ^% K4 s
程序例: & @* h4 i% i+ S
#include 4 l4 r$ d/ h# n9 C, g& y$ `
#include
' ^ v6 u6 X7 b9 z8 K8 c#include - b/ Z8 l7 @% _+ U% Q& ^
#include
+ i& o! X( b8 [; ]) nint main(void)
/ m; X6 ^& e' P# R0 Q. c8 @{ # y7 c- j: A1 u: [6 n
/* request auto detection */ # N' N6 I. H4 v! P
int gdriver = DETECT, gmode, errorcode;
9 b$ u* C! j0 J4 c3 Uint midx, midy;
5 n; l1 l# o' b; M% C/* initialize graphics and local variables */
' P4 e1 q% y) @* y( i1 Jinitgraph(&gdriver, &gmode, "");
+ ?! `: z5 m0 u7 H J% h! `/* read result of initialization */
" t; w) p0 V9 D. R% Z) Aerrorcode = graphresult();
* D" h) K+ J; i7 O( Qif (errorcode != grOk) /* an error occurred */
& }* A" C% x L{ & x( s4 u' o. ?8 G$ n7 ~* w |( S: o. G
printf("Graphics error: %s\n", grapherrormsg(errorcode));
3 d$ _5 `: f9 N5 x' M1 n, xprintf("Press any key to halt:"); * F! p" M) `3 {% \. @% U
getch(); . Q7 \8 k. Q' Y' o. J0 d2 d
exit(1); /* terminate with an error code */ 2 e& [+ t) P5 d! q
} # u8 o$ t0 _6 s
midx = getmaxx() / 2;
( C0 ^5 o8 Y3 ?( ^2 lmidy = getmaxy() / 2;
c, {! k9 e! R% Esetcolor(getmaxcolor());
. e6 a! Y0 P1 n/* for centering screen messages */ 1 L3 a3 s; B- ]
settextjustify(CENTER_TEXT, CENTER_TEXT); & S+ D1 ~" Y1 }- H
/* output a message to the screen */
" j4 V- M4 W) u& M6 \6 T7 Oouttextxy(midx, midy, "press any key to clear the screen:");
8 w/ w1 C7 u* {7 b2 c2 U- a0 ?/* wait for a key */
, T/ N- y& s, [+ F9 hgetch(); 2 H" l: V) V% S/ X; A# X
/* clear the screen */
6 ?3 R: Y/ F M/ ~, K4 X/ Qcleardevice();
. j+ M: x9 N: ^. h/* output another message */
) o1 q8 _: f$ T& W# uouttextxy(midx, midy, "press any key to quit:"); " E+ o1 E' ]- n) H+ @3 \
/* clean up */ ) u) S, M7 b4 z8 h+ X
getch();
' e" n$ P4 \8 C8 ^ wclosegraph();
: a% I" r! f* W5 i& c. z ureturn 0; : h- a* x b. g/ L" x4 ?4 X& n
} , u0 I! G6 k( g6 M4 x
) c' {+ u! Q3 d x3 V+ M: r( l5 K2 |* l1 H0 I
2 w5 c2 o( n. X% ~& [1 D- @, F函数名: clearerr , V0 V3 a4 q- r, \# V& ]6 C* ]
功 能: 复位错误标志 ) }( \* }8 r( A3 \! s( T# x
用 法:void clearerr(FILE *stream);
; g7 Y* |3 V- J程序例: * [" z; k" u+ M1 Q2 U1 F& l
#include ) n8 D, h" b. T* o M5 G$ p
int main(void)
' L7 Z* |/ O6 R& O{ , `2 f* t8 [ E: W! M# s
FILE *fp; , k( h1 T! o4 q$ a& P, |8 v. P
char ch;
6 S* G/ x% w+ T4 t% u( G/* open a file for writing */ & f+ T! E6 A9 A6 X3 g3 {5 x4 P
fp = fopen("DUMMY.FIL", "w"); 7 V& w. B5 H+ s7 H( L5 e5 s
/* force an error condition by attempting to read */ 1 g. v8 N. O$ I9 S3 ^) M
ch = fgetc(fp);
) C/ @* \( G* G3 r0 |9 nprintf("%c\n",ch);
8 a% d1 [& u0 M( Iif (ferror(fp)) 0 Y5 V4 V9 y* m0 K5 Y
{ 4 H: @, \- i) a
/* display an error message */ 9 u' r: }0 W' a8 U' ^
printf("Error reading from DUMMY.FIL\n");
0 r0 }6 L$ Q: J" T! o. x5 n/* reset the error and EOF indicators */ % ~/ F* U3 ~2 F% ]" K K
clearerr(fp); ) z; D2 Z) M) ^6 @0 B" G: m! d) {5 A$ h
} & _4 Y5 c p# o% O. l: O3 k O+ o
fclose(fp);
/ y/ [4 {/ F! f( m6 _" ?& T( s9 treturn 0; - w, G \1 C4 ]) Y, e( i! r
} 2 G# A" m# c# `9 {* q
+ L& C4 ?: [6 C4 w$ Q' L9 V3 T z" V6 W7 [9 [
; h5 @8 A$ F8 V ^. b. p3 j7 J函数名: clearviewport & E; _' G' P& h6 h# k" q
功 能: 清除图形视区 / V. T$ u9 j& `& O
用 法: void far clearviewport(void);
& B2 o& i4 [% k; I程序例: / f' z: u8 {4 N+ Q4 u
#include 0 G3 r) N, g: v7 e" ]& ^
#include 1 W# J f) W+ j1 S
#include
3 P; M! j3 h! W+ t0 X c& p6 ^#include
- d+ g5 ]* w6 a# j#define CLIP_ON 1 /* activates clipping in viewport */
1 A- k& H* F% a# A6 Zint main(void)
4 {% ~7 A$ R5 A4 w& ` x$ C$ z{ & }) e4 p; B5 Q' @! v A5 |
/* request auto detection */ 0 V/ `8 e/ n" Q1 `
int gdriver = DETECT, gmode, errorcode; ! ~. `* ^# W$ L$ }6 A% I' U! J2 c
int ht;
3 |% V! |" }; V% b/* initialize graphics and local variables */ 5 r0 h7 w: T h6 ]" U
initgraph(&gdriver, &gmode, ""); : E6 {" f3 {4 S8 U; R. v2 Y q* t3 }
/* read result of initialization */ ! l+ i Q/ U3 o+ h
errorcode = graphresult(); # q2 r& ]7 c2 Z+ j; x1 B& @4 V
if (errorcode != grOk) /* an error occurred */
8 o2 P- z# K& A{
; R$ P( {* D$ s c' _printf("Graphics error: %s\n", grapherrormsg(errorcode)); 2 g; g1 v2 [$ Y4 ?. }
printf("Press any key to halt:"); 1 {! J! D9 D: V" ?
getch();
7 f2 t& K: z9 h) Cexit(1); /* terminate with an error code */
+ F p0 Q+ g. ~. Y7 ^} b# o, z. [( B# }% r: g
setcolor(getmaxcolor());
; W/ K+ M# v; M4 E* P: B3 Y9 ght = textheight("W"); & d U d2 \1 g y$ e7 t
/* message in default full-screen viewport */
6 a* h; b& F+ w9 k1 R* }outtextxy(0, 0, "* <-- (0, 0) in default viewport");
$ ?+ q/ |. x/ H/ r" b/* create a smaller viewport */ 3 g; a8 d b" A) |
setviewport(50, 50, getmaxx()-50, getmaxy()-50, CLIP_ON); 1 p. F8 K! z! q6 ~2 T' Y
/* display some messages */ 7 S5 u9 h) V4 A' J1 [# K; M, W
outtextxy(0, 0, "* <-- (0, 0) in smaller viewport"); H: n$ h3 l- X6 ~" M4 ?" q' q( A
outtextxy(0, 2*ht, "Press any key to clear viewport:");
, x. H% Y# T+ ~0 y/* wait for a key */ & E3 o( A3 r/ L! H5 ^# B
getch();
) v+ h* V( `$ f: N: U. F1 l; D/* clear the viewport */ $ j) |# C" e; k k. K' B g2 C' P0 A
clearviewport(); # d9 a" ^% q" T9 F/ u/ M
/* output another message */
- T% n# y, {" ^& K' [outtextxy(0, 0, "Press any key to quit:"); 5 ]2 u+ T- r! [; T0 K& j
/* clean up */
3 |' W) Y: a0 X+ d( ~getch();
4 g0 Z4 _; q. Uclosegraph(); . d; s7 b: F8 ~: ~4 t
return 0; ) Z/ P ~; G& P8 L3 v1 h8 I7 ]
}
! c7 |8 n' t/ |# P2 z5 P5 C% t. ` h; c: ]& B
5 C( h* ~% ^5 T: s
/ ^- V0 F9 s" F8 \5 ~函数名: _close, close # f M I% R7 J
功 能: 关闭文件句柄 ( U9 A( `4 p1 t& o: Z( |) K
用 法: int close(int handle);
" m2 I) H4 V% {% B5 F; R/ K程序例: / B0 t8 M' d' y5 ~
#include % q9 F4 i5 @2 j; V- z" R# l
#include " J% C6 A% h+ d7 ^ ?
#include ! W5 R9 R1 Q1 A( Y5 s
#include
( k% z$ R, l5 d5 P4 N9 y2 F" U. j3 Umain() % S8 Y5 h2 w# X
{ " s4 W& }% t* `. I7 M4 e
int handle;
; k$ |2 f4 ]! {, c/ D6 uchar buf[11] = "0123456789";
9 y. S5 z5 x1 C: n! O/* create a file containing 10 bytes */
: i. s4 O3 R6 @; bhandle = open("NEW.FIL", O_CREAT); : j5 F0 e6 {5 K- Y I( E
if (handle > -1) 0 r0 a& h r' E
{ 4 O' K# T2 _' k1 ^7 _+ Y
write(handle, buf, strlen(buf)); 1 K5 U0 o9 H. j% L
/* close the file */
( n0 ?: d, w/ {/ A) o7 ^ gclose(handle);
' ]- O( ?! s# i. z} + I5 {; d( g' g, L: f
else " G+ f3 Y' ?2 _" k2 F8 r; E+ B) l; r
{
5 n. b6 E% p& D2 C" _$ Wprintf("Error opening file\n"); 1 r/ k& q% i; x4 T. x/ G; m
} 2 N0 a$ T" g1 [. k2 o# x0 [
return 0; # s# A3 U# S7 D! V
} $ |4 A; d3 o& D& E
7 _2 h& y- h; G& j
9 b& K5 ]" V$ V4 w+ D6 J
, V, v M& V! K P; |2 n- _
函数名: clock
9 Q H3 D# J" L2 N功 能: 确定处理器时间 % V3 @& G% {9 Y1 z9 c
用 法: clock_t clock(void);
; _# w% @$ X( [4 }) Z程序例: / i8 F! G$ M; g3 u% z
#include
+ S3 n8 p* [" [5 w- J ^#include 1 Y/ [7 b9 n2 i) W- M
#include 1 {3 E6 t! O4 X8 X9 b( G
int main(void)
6 [" f7 N3 l; {% }- I/ H{ & H m: K8 B: f f# H
clock_t start, end;
7 x5 Z [+ |3 _: w3 Astart = clock(); , i8 G, v; H: \6 k- i; U) H
delay(2000);
1 T- U3 s3 a( Z. y/ W- Eend = clock();
- t7 `: F+ m1 q, M1 c Qprintf("The time was: %f\n", (end - start) / CLK_TCK);
4 q) g; q# @) U( A8 Treturn 0; 6 v6 r3 J* S( C5 D. ?' d- L# C
} 1 a8 T+ h2 y' f3 G5 G+ j ?0 B
- c3 T( o/ d2 |, H) Y( }( R% K' B3 o6 D4 Y2 ~$ ?
: G, T" ~" B d' V3 k# h1 b6 l函数名: closegraph
; S0 f% \8 Z. r功 能: 关闭图形系统
) R% c6 I- u3 T* x& e用 法: void far closegraph(void); 7 A9 Q3 e, r, D, t
程序例: 9 y8 k7 A' I; @0 h
#include ) F: U3 P# y: |8 t; c9 g
#include / d) c- q; _9 }. W% E2 v9 o
#include : A% y* R' T" ^1 B* q2 Q3 e# c( y
#include
$ U# i6 Q% g$ C2 K( Nint main(void) + @2 {9 i" O l
{
% b, W' P. B& X& \0 y# `/* request auto detection */
$ r# T) ~+ b. i% u ~- ~! q" h; {int gdriver = DETECT, gmode, errorcode; 2 B2 E# h1 X9 _0 c0 A
int x, y;
( t! Z7 `. h# n% N$ H/* initialize graphics mode */
$ ?( {/ ]3 F& u1 j$ R( Pinitgraph(&gdriver, &gmode, "");
# x g/ g/ H5 x ?, t! b/* read result of initialization */
1 ]- ]- `, [6 M! v: merrorcode = graphresult(); 5 s* s( R1 N, l
if (errorcode != grOk) /* an error
* s+ n7 J% e ]! Foccurred */ / k6 g0 r: |9 t' Y
{
( D! _8 f$ y; a% B1 f( E$ ^printf("Graphics error: %s\n", grapherrormsg(errorcode));
- l4 T; L. U. r$ i; bprintf("Press any key to halt:");
]+ U4 K8 t, |8 M# Igetch();
' l* Q0 ~, ^4 w& iexit(1); /* terminate with an error code */ ! K$ d1 u6 v! y3 m
} # A' e D) F$ [) i1 X2 b9 G
x = getmaxx() / 2; 9 \! y) I1 {; t5 c
y = getmaxy() / 2; 8 \6 X- f' ^- ~6 X2 R7 W$ c3 b
/* output a message */
4 w) u1 `8 h$ m4 Ysettextjustify(CENTER_TEXT, CENTER_TEXT); 0 X' k9 N6 p B) {% T7 h, A ^% _
outtextxy(x, y, "Press a key to close the graphics system:"); . V* T6 n- q8 \/ G
/* wait for a key */ ) | L4 x* r0 b3 \5 s$ M3 g- v4 ?
getch(); 4 o' ^, B+ G' T/ O. \
/* closes down the graphics system */
H* h' W8 E3 H- Nclosegraph();
1 f7 X+ T) l7 h# T& V& X( Z7 Yprintf("We're now back in text mode.\n"); $ k, N4 g* O5 b
printf("Press any key to halt:"); * @) f( x* b7 S# n' j" \' g( q
getch(); : I5 k6 @9 o! k6 ?) M' d" O' G: {
return 0;
& X* D- @/ M% @# m3 q} ! l2 X- q5 o' J- H1 h9 N6 ?$ K. ]
6 H( d# N- Q" e8 G5 p: s
6 u* ~7 |/ n. I8 |. l% v' C
5 o" g* |7 y* H! H/ {! T7 C函数名: clreol 1 O% }$ u+ t& z& b# I' o, ^
功 能: 在文本窗口中清除字符到行末 ) B8 \' t5 I9 L7 `. M; n4 v) }1 |
用 法: void clreol(void);
7 H$ y6 h% P/ }9 h' W程序例: ' w G+ t7 F8 b, O' | V5 O. ?
#include ) i! a4 f [1 _4 B- u
int main(void)
: y" b6 d, g+ ^4 W# G{
3 P: q0 Z9 w3 B5 P- _# m7 p7 m2 nclrscr(); ' T. h$ R# E- `7 X2 w
cprintf("The function CLREOL clears all characters from the\r\n");
4 e6 n9 E, D& S- h1 ~9 ^# ycprintf("cursor position to the end of the line within the\r\n"); ! V9 m0 R! x% U, d1 J+ t1 L9 N5 _
cprintf("current text window, without moving the cursor.\r\n");
E9 l8 s" v. [4 O, dcprintf("Press any key to continue . . .");
8 m% m: Q3 z* }. G) {4 e$ v7 igotoxy(14, 4); 7 }. B& f. E& i4 l/ Z
getch(); 6 ?# h6 @9 `/ ~
clreol(); , H7 K+ Y/ r4 W2 }" j
getch();
0 {& R' R% f9 z* `3 \# _$ Y# lreturn 0;
6 O4 o1 Q) g) F$ I& }0 F# l} : b/ s5 g8 V, |/ o
; d, h7 A, |% i) ^& I, ~% v. X! }0 m$ S& H& Q: k
7 ~$ x4 \3 b) l8 D函数名: clrscr . W9 W" Y w7 Y
功 能: 清除文本模式窗口 ) Z% j: F; b! M! G- P5 E! K* ?; K5 S7 E
用 法: void clrscr(void);
/ Z: ]# N! p E程序例: $ S: m& S, e2 P/ A( V \3 h$ L
#include ( S! Y) d0 S e, p- z" w* i% q- L; a
int main(void)
) S6 o. ~9 |/ f4 l: [8 g9 u+ z{ # ^8 \6 C3 N; N y r/ C" @
int i; 6 U- f5 F+ m# l4 y
clrscr(); + V3 ]6 F; W A
for (i = 0; i < 20; i++)
. G6 w! S' k3 \/ i* Z( Kcprintf("%d\r\n", i);
: b7 s6 w, w) a, S8 L/ \: w7 O6 Acprintf("\r\nPress any key to clear screen");
: g) c# i" M! dgetch();
o8 v) {6 l- T3 X5 jclrscr(); ( s4 v% r8 M( r3 e. R3 g5 o
cprintf("The screen has been cleared!");
5 Q1 v" A" U2 r6 z* N) S" Sgetch();
3 I4 g% M& U$ j5 Mreturn 0; % K3 V: {# j* D" k
} & ^! ~8 C7 n# H' q: }# w1 S" g
" b3 `" A8 K! n. }. q# G
# s4 K5 e1 }: [9 `* f
. i7 K1 a; o7 q% x0 P
函数名: coreleft ) }0 R; r' a/ q6 i# r
功 能: 返回未使用内存的大小 1 t, I2 Z. f' K* H
用 法: unsigned coreleft(void);
) E; c: |$ w, _5 m: M# O程序例: 5 e D4 d6 U. }
#include 6 T" j* |! E$ ^/ K7 n9 z3 o+ b
#include 1 C* N: q U/ W8 q- C- u# B# c& o8 J
int main(void)
1 E. C! a L) [% H6 Z8 d. h{
8 [1 ~4 U- |& \2 C9 ?printf("The difference between the highest allocated block and\n"); , s% P) u& J" b0 R
printf("the top of the heap is: %lu bytes\n", (unsigned long) coreleft());
2 r# a, j; o2 |return 0; . v# D+ g# C1 h& {
} ! z: r e6 k8 p! T7 a
# k5 j) A6 B8 z2 v. w- U函数名: cos
q9 Q) }6 D" Q8 U7 y( H功 能: 余弦函数
7 w' ?8 b2 G! s4 n# ~0 U用 法: double cos(double x); 4 U& Y) S/ H7 X' o# p. p1 Q
程序例:
$ S5 h3 s0 a1 m#include 1 V5 b& j# K( P; S E6 K* s
#include . v6 r! q7 K$ d; [) m$ b
int main(void) 0 \+ I. N/ K$ W! ]( j
{
: E9 M" f; K5 l, t4 l$ Gdouble result;
, D5 V; w' p9 z7 tdouble x = 0.5;
- p) |/ K3 R" I$ h& v( _: Uresult = cos(x);
% N k7 D( _- V# V% S* {, pprintf("The cosine of %lf is %lf\n", x, result);
; J4 f2 P9 N" r6 c; b- p* ereturn 0;
/ S- W2 V! Q" t% y1 N. T+ B}
. i# [7 p- y8 R6 ? K
% h# }" W* |5 p$ `
. p+ v1 ~- O! f1 q" i# }: x 8 M' `9 V7 u+ v- j0 d
函数名: cosh 3 u) R5 x& M3 z& d, ? ` _ H. X
功 能: 双曲余弦函数
8 s; z, v" J9 Y用 法: dluble cosh(double x);
* K1 W+ Y) X! W, I% ^4 Z, S; Z m程序例:
4 w6 O1 g( ~) F#include
8 M' P$ D9 M- l5 g- A- Q9 C#include
* p# O! z" V g$ _0 H: ?/ qint main(void) 6 q% Q# o' ]" b1 }7 o% A& r
{
1 t% ^5 M; ^1 X; Odouble result;
7 S3 p$ \/ }3 `7 b2 g; pdouble x = 0.5;
( V) M9 L; ^- v) sresult = cosh(x); % q1 e$ x" O- o' O# Z8 O
printf("The hyperboic cosine of %lf is %lf\n", x, result);
8 M7 R0 @( y" Y9 G" greturn 0;
2 P7 c. P9 i6 v* N% h} 4 [) M7 L! ~7 n
' w/ v# j" N: N% F8 E1 C4 W
* @/ d4 Y5 y6 L8 r! u; c) r3 |6 { H
: S. v0 g: B8 Y- t) G2 v函数名: country . v8 X' a( [! V0 W
功 能: 返回与国家有关的信息
% u& W/ \( k3 j+ }用 法: struct COUNTRY *country(int countrycode, struct country *country);
) M* s7 F. y# w$ E! S程序例: , S" {* S+ @* `4 q& A( V& @
#include 8 Y: S. u( d0 y F
#include 6 V2 M! ]0 N1 E6 ]( C
#define USA 0
0 u2 V/ R2 h8 Y7 S0 Fint main(void) : X* V1 u$ N2 G: A0 w$ O- S8 X! h
{
9 c3 ]0 ^" K1 ~4 a2 `struct COUNTRY country_info; ' [8 D/ M2 {' H* q
country(USA, &country_info); 5 _- p* ?" o" ~
printf("The currency symbol for the USA is: %s\n", 5 ~% y4 ?' ]& f1 _: O1 s3 [1 f' A+ {" z
country_info.co_curr); 8 r* V; b# j' V% ]+ o
return 0;
1 i- G4 M7 O$ b0 i}
# Z1 R1 M* C6 M+ i# S
' M$ \4 p0 i: t% }( ]+ d, m: V/ l: ?* H$ D# x& z' @
* i. v% ~- u# C$ J2 {$ e2 y$ b函数名: cprintf
- {+ t. T6 G- G0 Y* v; F i功 能: 送格式化输出至屏幕 3 [" x, f% g' }( q
用 法: int cprintf(const char *format[, argument, ...]); : P2 Y) i1 a1 {5 }# Y6 e2 s
程序例: ; P( I6 s) F2 u$ H6 U( z9 k. j T' i
#include 3 ^, \( B" C2 }( F: z7 `$ H
int main(void) ' \) H9 Q" H6 a
{
# I. l3 K0 O' m0 T/* clear the screen */
5 }- T4 P) h) ~clrscr();
% U- \6 K6 I0 m: w8 B+ F/* create a text window */
/ ?* R7 L5 V/ a$ l- v2 h7 gwindow(10, 10, 80, 25); 5 j" n8 h: m/ v
/* output some text in the window */
0 t( u' W4 ^' B: acprintf("Hello world\r\n");
- o, b3 ~& o* [0 U/* wait for a key */ , G1 c. x: S) B, k5 {
getch();
; u$ ?* W( B. z0 Vreturn 0;
; d! |% J' m8 j f. \}
! k9 O$ {8 }6 ~& [: T1 A% O* s5 ^% @- S) S
' a3 O& f2 q: S _# C
/ ]' h# l7 f% ^0 H
函数名: cputs
& j. K! x. k: s4 H6 M+ b功 能: 写字符到屏幕 : F, ?! L" `' I! f
用 法: void cputs(const char *string);
7 J, d: g5 T! h9 Z0 p2 z8 L程序例:
' ]( B) _$ h7 d2 z+ i#include
# }$ ?+ a3 u! V) e0 p1 Gint main(void) 0 `! f2 P; r2 N5 Y' X
{ 6 U9 @" w: D/ Z+ |
/* clear the screen */
- j1 r( h4 G, T8 ~clrscr(); ; L- H7 P# \. K( z1 M
/* create a text window */ ' p2 F7 q7 S! U$ i, q! X2 Z" }
window(10, 10, 80, 25);
$ M/ a" ^% T/ m* [' C; L% K9 L ?/* output some text in the window */ " H* L" f* h3 A- B) a
cputs("This is within the window\r\n"); q: v- p2 ]9 n8 t- K& l
/* wait for a key */ # G: n5 Q3 f" J) }8 v; |/ @
getch();
! f7 b7 H, [" @# T: @. w# ereturn 0; 1 @$ i; X7 c! Y: A# e: n( D
}
5 q3 |, _$ b% ?
5 R$ V1 j6 h5 F- ^, R
. B$ S l! w: f$ Z% W
; w) R P. I9 X函数名: _creat creat
" C: B. {% [* r- m6 z Y K功 能: 创建一个新文件或重写一个已存在的文件
6 u: o9 b, ^+ U# j用 法: int creat (const char *filename, int permiss); & H6 B1 j/ y" R0 v' n) V2 T p: _
程序例: . W$ t' ?. r5 s4 W
#include
1 K# n* S" }- r#include
9 N3 c( t t0 I8 C0 `3 Z: V. a% j$ K& ~ e#include , `7 x7 e* d9 }
#include
4 k) h' m- \$ ]/ P8 U8 b$ gint main(void) " d+ l: p' _; N( I" u1 ~$ s! @, [
{
: k8 q! V! `: ?# x7 R: T* ]int handle;
6 l7 D2 S) m9 [9 l, M$ R kchar buf[11] = "0123456789"; 2 y1 Q* a* K: j6 p$ c1 X, x6 h
/* change the default file mode from text to binary */
0 R& ^: h0 b4 B_fmode = O_BINARY;
! o" j! v: G3 C% I. e1 B/* create a binary file for reading and writing */
; B% _: h P# jhandle = creat("DUMMY.FIL", S_IREAD | S_IWRITE);
; Y- G1 t$ p. W5 ~, `* g/* write 10 bytes to the file */ & c! l" t# C6 Z$ Z5 M3 B
write(handle, buf, strlen(buf));
4 r8 V3 _0 U( G Z/* close the file */ / `$ c( t* j# Q7 Z- o* @$ c# I3 v
close(handle);
0 }! p% t0 Y8 ]3 nreturn 0;
* N4 T9 Z" i- Z+ X# K}
6 A0 q4 {- } X1 C& m
& q6 r: I1 Y3 W! v2 A' E! X8 \# ? }函数名: creatnew " H3 G4 `! A6 W. }5 r$ @
功 能: 创建一个新文件
# S) t8 U% r+ I8 C" r: |; s用 法: int creatnew(const char *filename, int attrib);
" K C, X* t- w; E/ [7 ^程序例:
1 [" l6 o3 ~7 g% h6 Q$ H#include
8 ]& q; {( Z+ \' Z& V8 x#include
0 f' ^% g4 P* ~: |#include
, k* S0 Q) t) R#include 0 d# ~5 B3 @2 ~2 {. h+ a8 a
#include - _* C) Q& v# Z$ @7 Y+ {, a
int main(void)
0 t& T/ k0 l' z0 E8 m{ 3 F+ X% X; }+ i( x2 b! d* ~
int handle;
6 R2 V9 a) k% e, h/ s; Mchar buf[11] = "0123456789";
1 B4 W2 T" ?% G: P' {: T$ j0 u3 ^1 W/* attempt to create a file that doesn't already exist */ / a) D* y/ O4 X3 K
handle = creatnew("DUMMY.FIL", 0); / @. X3 A# t: H$ r: ^
if (handle == -1) ' ^. w$ a: Y8 z9 P6 \1 T
printf("DUMMY.FIL already exists.\n");
- a/ s" Y4 \3 ?% Gelse
* i$ j D0 }6 u& T2 Y{ & v8 [: f/ r% }
printf("DUMMY.FIL successfully created.\n"); " z5 J8 u& l0 z1 K/ w
write(handle, buf, strlen(buf));
1 I: y0 r6 I% q; K7 r7 {8 f& Qclose(handle); 1 E% v* b; M9 P
}
9 B M2 Y0 g9 z3 [+ rreturn 0; 4 ~# w" y( D+ N+ L; x+ @
} 0 Y2 Z: Q" c2 r- b
* y- r5 A5 h0 a1 c) @! ]9 x' `! N S# |( P9 z
* a9 k9 G# w% P H! J函数名: creattemp
' {7 u$ w* d, L9 l! n功 能: 创建一个新文件或重写一个已存在的文件
& A% R# j4 t. D9 Q# W" V用 法: int creattemp(const char *filename, int attrib);
- C( C( [8 t6 \" ]程序例:
$ {# V; |4 m2 V; ?, H1 N#include + g6 y: Y/ B7 K
#include
- Q: l$ U/ L5 x) H) ]( V' z#include - |" L. O* i" e6 ?" i8 r7 g2 p
int main(void) % d# r' l9 Q8 b: ^( Y6 |
{ 2 B: J; M' C4 I' z& b
int handle; 5 t1 p8 d! s( F6 ?* I0 @; u9 y
char pathname[128]; 6 ?1 ?) x7 y+ D
strcpy(pathname, "\\"); 8 {+ y6 ] Z% r: S" w4 D
/* create a unique file in the root directory */ 2 u W' j. u9 V" R1 h' F4 Z
handle = creattemp(pathname, 0);
5 c. J3 T- J2 ~' F. p$ d+ @printf("%s was the unique file created.\n", pathname); + T I) R8 @! k1 t; X
close(handle);
9 D6 L( i% v% |5 F, l x/ yreturn 0;
9 N9 k5 W- U0 |# m1 r} 0 R2 K9 {7 X5 G# `& O
6 V2 ]+ M7 F& x( R- U, H3 \. C1 B8 A0 Z1 g
V' j, E% a* F% T函数名: cscanf 1 w" h* N/ c5 v) z+ {8 z
功 能: 从控制台执行格式化输入 1 x8 ?' q e- A2 t* b+ g) x
用 法: int cscanf(char *format[,argument, ...]);
/ S0 `" r6 k2 A% s程序例: % Q6 O [' z! M
#include
2 _0 K7 j" [0 a* P$ x0 J5 b u1 Vint main(void)
8 s v1 r6 F3 W{
( D% w% L+ R$ u5 @/ [$ H9 e' p! cchar string[80];
$ d" q1 a+ S1 c0 b/* clear the screen */
+ T: v, N: u d" `clrscr(); # r/ u) Z& ]0 `' O* t) h
/* Prompt the user for input */ ; g8 B- J3 \8 u$ X
cprintf("Enter a string with no spaces:");
4 a5 b& t/ C$ e/* read the input */
- f" [7 f9 L. Q( v9 Xcscanf("%s", string);
3 v5 H6 [7 F- k5 C$ J' T/* display what was read */
* I8 D' @/ {, w& rcprintf("\r\nThe string entered is: %s", string); . y& U- Q# N) ]$ x
return 0; . p; p! o" ^. r5 D4 {! B
}
3 x! B) F8 g5 P" N. Z8 d
2 U- R+ [6 G8 L3 S7 H3 R) Q
- @. I# ?. C8 X# P 5 a$ l2 W) S2 I' g! w# ]
函数名: ctime
{0 {0 Q) d2 g功 能: 把日期和时间转换为字符串 & n7 r0 }" E1 U, n _
用 法: char *ctime(const time_t *time); ) ~$ n, E% Y0 n2 _
程序例:
; r2 l9 u3 A) P' c#include
& B0 R8 |0 @6 {# Q#include
2 R$ u. [+ {! H+ p% T2 H% Wint main(void)
& R3 J& _: k2 X) |9 \{
$ u4 }: D( m. m; D+ htime_t t;
0 c1 L* N% R0 e+ c4 Wtime(&t); F' _! ^( i% J; Q3 j; a
printf("Today's date and time: %s\n", ctime(&t));
8 @1 }# D9 ~( b% O' B- H! q+ w" u Zreturn 0; 4 v: i# \) M% B S \
} 9 c' Q- Y% b5 T" U9 Z" T
% h/ @: h* @" {" K2 p
# O6 G$ R! c1 ~8 t9 D
8 g, ]0 K9 Y8 f5 p
函数名: ctrlbrk & d- k! [* p4 D1 ?, Z
功 能: 设置Ctrl-Break处理程序
' F9 W. b$ { x! H7 r用 法: void ctrlbrk(*fptr)(void);
8 P* g* k. T" V K; h" t: m程序例: ! o+ M: D" Y2 X' x0 ^6 q
#include 0 F: M' M2 D; ~2 }9 v
#include
2 J7 k+ s/ r; \9 l' b#define ABORT 0
3 g- B l( A5 q8 m5 Gint c_break(void) - j* @( p: r- ]3 p3 N8 v
{ / _% J3 ~0 K4 I4 q, ~
printf("Control-Break pressed. Program aborting ...\n");
3 m$ }( @2 Z4 o7 N9 Qreturn (ABORT); " G: R/ ^" f1 [0 L! ^
}
! e# G4 X: i1 ^" `int main(void) , C. S1 D9 U7 G5 L1 Q# }
{ ( s1 W5 ^6 B& U$ U! @4 H0 Q s
ctrlbrk(c_break);
3 i& P* w0 `0 |$ |9 i) u- K9 h zfor(;;) 9 B. d6 E( z/ L
{ 8 h( X) e5 `6 @; L' E' A
printf("Looping... Press to quit:\n"); $ d' \' q \. m& u
}
" c R) } c% B8 X, freturn 0;
! a( O2 M- I7 Y; T& K% |8 W} |