- 在线时间
- 0 小时
- 最后登录
- 2007-9-23
- 注册时间
- 2004-9-10
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 9975 点
- 威望
- 7 点
- 阅读权限
- 150
- 积分
- 4048
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1893
- 主题
- 823
- 精华
- 2
- 分享
- 0
- 好友
- 0

我的地盘我做主
该用户从未签到
 |
< ><FONT color=#ff0000>函数名: qsort </FONT>
7 g2 v( z1 n( u# k) M1 k9 b功 能: 使用快速排序例程进行排序
9 r, y5 f' ^1 ^9 g& c `用 法: void qsort(void *base, int nelem, int width, int (*fcmp)());
$ [! j; v7 |" V& @程序例: </P># S+ T6 m! D9 ~5 E8 P9 e0 h
< ><FONT color=#0000ff>#include <STDIO.H>
6 {4 P5 I, K% T# r#include <STDLIB.H>
- g+ I8 T1 _0 S7 F& g* Z#include <STRING.H></FONT></P>8 w$ R" u) }; L5 t
< ><FONT color=#0000ff>int sort_function( const void *a, const void *b); </FONT></P> v: |# \0 o6 @& K, I: ?9 ?, a
< ><FONT color=#0000ff>char list[5][4] = { "cat", "car", "cab", "cap", "can" };
; U. T' h' j7 J2 q2 X* z. j- o</FONT></P>
# O' i& k& @; h, m< ><FONT color=#0000ff>int main(void)
" m' \' z& B+ ^+ h( t{
! A( I, c4 I7 uint x; </FONT></P>4 {% A% w" z, c- \
< ><FONT color=#0000ff>qsort((void *)list, 5, sizeof(list[0]), sort_function); ' |- `" Y' [4 z4 m
for (x = 0; x < 5; x++) 6 @/ y# f4 I1 g# M
printf("%s\n", list[x]);
& H2 E* d# Y+ Z9 D1 r: s" V3 Ureturn 0; * Y% s4 t) z1 _$ l) {" D
} </FONT></P>: G8 F+ E2 ]/ A# r- T# P
< ><FONT color=#0000ff>int sort_function( const void *a, const void *b) 2 K! h/ V5 q* i* i1 V+ v3 N; t
{ 7 L/ N, G4 r+ g2 L2 @1 L/ M- L
return( strcmp(a,b) ); ! I1 X. A8 C6 ~8 R. y& l
} </FONT>5 F8 u5 R e+ H/ \' ?! P- k" \) }
</P> q3 c: f3 G8 @. P+ \
7 C. m# t5 T+ k' b: S- I0 Y, o$ H6 @
<p>
]2 c ~8 P( t) {5 `+ C+ D< ><FONT color=#ff0000>函数名: qsort </FONT>$ C; ~8 C$ J1 ^. q/ O' H
功 能: 使用快速排序例程进行排序 - ?& P M1 F E5 k
用 法: void qsort(void *base, int nelem, int width, int (*fcmp)()); 4 V9 ? c ^3 j: I. q
程序例: </P>) u# f4 p$ D' j) }6 g& H
< ><FONT color=#0000ff>#include <STDIO.H>
: u: w8 N' ~* S#include <STDLIB.H>3 h. r# j/ J; |) k
#include <STRING.H></FONT></P>/ h, V( @' t1 H" v
< ><FONT color=#0000ff>int sort_function( const void *a, const void *b); </FONT></P>3 Y% l, u2 j O
< ><FONT color=#0000ff>char list[5][4] = { "cat", "car", "cab", "cap", "can" }; ( E V- d6 x+ ?0 N7 n* g/ R- t2 v
</FONT></P>
) r' V* @/ L5 J< ><FONT color=#0000ff>int main(void) 2 O* z* {$ |/ E! t
{ 1 o' q9 C+ r& x
int x; </FONT></P>
7 n7 z$ w* d/ t+ g3 C$ c( T$ z6 r< ><FONT color=#0000ff>qsort((void *)list, 5, sizeof(list[0]), sort_function);
: L1 G7 C- `* W' d0 ~7 C/ M" Pfor (x = 0; x < 5; x++) " q) l0 x. |! z& Y+ q2 W
printf("%s\n", list[x]); 2 H7 d* f) Y4 b9 ]( J2 _9 b
return 0; 3 N- j O" L$ [. W! l Z: r
} </FONT></P>6 Z+ Q7 | i4 X
< ><FONT color=#0000ff>int sort_function( const void *a, const void *b) # i, S- Z. {0 Z5 O( v# r( @
{
* j, E' D7 y& a/ \) Preturn( strcmp(a,b) ); & ?" e+ g1 r# Z# l$ x
}</FONT></P>
8 o! a+ `5 T" h5 d< ><FONT color=#0000ff>
6 Q6 t' F& f& e8 E( H7 ~% @</FONT>
0 H* S3 I9 |, S) k</P>. ?: K7 ~' z; A
< ><FONT color=#ff0000>函数名: raise </FONT>
C6 Y1 s; l4 d: c1 L+ r功 能: 向正在执行的程序发送一个信号 ( s( _( |: v9 |- c8 M9 |/ K) k; ~
用 法: int raise(int sig); F! q2 n) y* l/ A
程序例: </P>
- q3 n- i/ L" a7 b7 L8 l< ><FONT color=#0000ff>#include <SIGNAL.H></FONT></P>
/ ^+ L8 E. s J6 ^7 ]6 g$ w; U< ><FONT color=#0000ff>int main(void)
1 M( O9 b% g/ O4 G+ b, Q{
: w$ b$ e$ \- ^# v: L6 S" xint a, b; </FONT></P>
% ?6 P6 m7 T* Y! Z6 e$ d& Y R< ><FONT color=#0000ff>a = 10; 0 @0 {& k& h+ K& B7 ^2 P
b = 0; " F9 N& t/ f5 m- |& ?2 O
if (b == 0) : O$ }1 \" a( C, e) M
/* preempt divide by zero error */ b, A: r. {7 S J
raise(SIGFPE); # h# G p( X; L4 v- L
a = a / b;
8 c+ Y* _; T; w2 ^* |& Hreturn 0; / b" p! |' n$ T; q0 f5 t- o* U' h
} , M) }: _6 `* }/ ^% `: L8 X6 R5 V
</FONT>
% g" d7 H) Y; M- P" t' s; d</P>
5 V! Q* Q+ E2 N( c< ><FONT color=#ff0000>函数名: rand </FONT>
7 x5 }; ^3 \& _8 O9 \功 能: 随机数发生器 * \! R* N- _& b. g
用 法: void rand(void);
' M0 ]6 s0 Z( c9 g$ i4 ^程序例: </P>
& D) p0 i0 [' G$ v: g< ><FONT color=#0000ff>#include <STDLIB.H>, N2 O5 ~; d5 s S
#include <STDIO.H></FONT></P>
0 G3 S+ {) I3 n! T/ ]< ><FONT color=#0000ff>int main(void) & z. U1 w# c3 y0 k$ W
{ $ a! ]; [, L$ O* o0 [* S$ _/ N
int i; </FONT></P>; [, {2 x9 J* a! p, c4 O
< ><FONT color=#0000ff>printf("Ten random numbers from 0 to 99\n\n"); & N+ u6 z/ `0 [& x8 ?
for(i=0; i<10; i++) 8 U2 X. M! { A" w0 b8 w$ z/ k$ F
printf("%d\n", rand() % 100); " g" S6 f. t! ?6 n4 ~0 V
return 0;
; {7 q, E5 z' J# J9 o: T, R} * _& }/ G- \, B& l: f
0 G% V. }" X& ^+ Q7 }0 E' s; D+ ~
</FONT></P>' \! L: _# ^+ t2 j( F s. m
< ><FONT color=#ff0000>函数名: randbrd </FONT>
$ A, e% O1 k! n功 能: 随机块读 9 @$ l- \. h. D: k/ B' {# [8 q
用 法: int randbrd(struct fcb *fcbptr, int reccnt); 3 V* H" N P- P! d5 V# t; H. S
程序例: </P># Z2 n1 a$ v& r- Q
< ><FONT color=#0000ff>#include < ROCESS.H>
. L! D& c/ j& W5 c#include <STRING.H>
& T+ l- O* ]. ]; J3 ]. E. I#include <STDIO.H>
* u! B* Z. l7 Z1 y! G5 `/ x9 t#include <DOS.H></FONT></P>6 R2 G0 Z+ j! v% ^1 e( h
< ><FONT color=#0000ff>int main(void)
6 q' k o h+ T! {1 j2 \; _{ ( O2 }. d9 M! c* w) |0 f# r
char far *save_dta;
9 T1 Z$ a, U. P9 J/ Q+ _) M) Qchar line[80], buffer[256]; 4 j3 K) K2 U% k0 S
struct fcb blk;
2 D; X1 Y, H# F$ sint i, result; </FONT></P>
% s/ y1 b' O5 f# ^& L< ><FONT color=#0000ff>/* get user input file name for dta */
! |3 y' f& o) \* N: f4 tprintf("Enter drive and file name (no path - i.e. a:file.dat)\n");
% u/ y' ?5 E! J- p/ |! Qgets(line); </FONT></P>% ~) F6 C8 a9 y/ d% ?
< ><FONT color=#0000ff>/* put file name in fcb */ : A% M u% a* J9 R: p1 j) i4 d
if (!parsfnm(line, &blk, 1)) % [/ I7 h2 \# o& g/ U) c
{
* E' @9 [: [5 z* I& h5 b% {! Uprintf("Error in call to parsfnm\n");
$ S1 w# u! |" @! m aexit(1);
2 t6 g8 u6 `/ @6 U}
" h3 u. h* e; r5 U3 {) c8 i- q8 Fprintf("Drive #%d File: %s\n\n", blk.fcb_drive, blk.fcb_name); </FONT></P>
% @- r0 O* i7 w& ?# Q8 W% `$ s6 d2 h< ><FONT color=#0000ff>/* open file with DOS FCB open file */ 5 B& Z& @9 e5 ~
bdosptr(0x0F, &blk, 0); </FONT></P>; u" @0 ^0 `: }& o* S
<P><FONT color=#0000ff>/* save old dta, and set new one */ 2 e+ i& W( G3 c& g u2 u/ y9 K
save_dta = getdta();
1 \4 K+ w, t- {, H4 bsetdta(buffer); </FONT></P>2 X4 w u# g' \: u1 T% P$ C
<P><FONT color=#0000ff>/* set up info for the new dta */ 0 ~- Z, W/ \/ r8 R
blk.fcb_recsize = 128;
$ \$ k3 L _+ R# X d$ \( l! zblk.fcb_random = 0L;
2 j. L( M) ]% G. ~3 p4 Eresult = randbrd(&blk, 1); </FONT></P>4 J: T% O% w/ x4 l8 {; _1 `! O
<P><FONT color=#0000ff>/* check results from randbrd */ - `6 g3 N" w( P1 d
if (!result) : h, [; Q9 m' ^6 `( O" ]' c
printf("Read OK\n\n");
, j2 K7 q' ^1 E9 I3 B" helse 8 @. z0 } l; E# a
{
$ ?1 w C6 L+ Y2 `5 R+ Pperror("Error during read");
" }6 y! B% l+ b: k. R8 kexit(1); 2 k. O: v. X% \! G/ N% ]
} </FONT></P>
) K1 H/ T0 a8 h; s7 W7 s1 X<P><FONT color=#0000ff>/* read in data from the new dta */
& a" L: D0 \6 v9 X5 C- Jprintf("The first 128 characters are:\n"); . m! p" |/ n2 C" s! B
for (i=0; i<128; i++)
/ W1 u& I; K; K& u3 Tputchar(buffer); </FONT></P>% e( ^0 _% A4 l) t8 }4 ^0 g
<P><FONT color=#0000ff>/* restore previous dta */
6 L9 x# \6 r; B4 H/ P0 n1 }* o% w' G$ L& usetdta(save_dta); </FONT></P>
w, I1 P& u. [ r<P><FONT color=#0000ff>return 0;
* ?1 K$ n! M- I" ]3 G; F} </FONT>, T; P! R0 t X4 i$ c3 L" i' Y! P
</P>- Y5 c$ Z" h2 O3 U
<P><FONT color=#ff0000>函数名: randbwr </FONT>1 t" p9 a7 m$ d$ d# v
功 能: 随机块写 4 O+ q, t: y: ~% [2 J) M& M
用 法: int randbwr(struct fcp *fcbptr, int reccnt);
! K4 P. x4 \8 A3 y6 a程序例: </P>
k, G( d4 H1 E, X+ R& T<P><FONT color=#0000ff>#include <PROCESS.H>4 j) ^% B& N- i: c; \ p2 t/ d
#include <STRING.H>
: d: |6 E* q# l6 X) C#include <STDIO.H>8 L( a Z# [1 Z6 N$ k
#include <DOS.H></FONT></P>& h% ?. h8 \: E& ^1 q
<P><FONT color=#0000ff>int main(void)
% a- m. N0 x2 j& `% h) f{ , t" `: i% \; |2 \ t; s) y, s
char far *save_dta;
0 i, @1 L! H- F9 mchar line[80];
3 Q- G: x9 L8 |3 l vchar buffer[256] = "RANDBWR test!"; ' ?4 N! W* A4 Y! L
struct fcb blk;
, [; c" |6 \* F' ~/ P( m0 `int result; </FONT></P>9 i4 v. a9 a' i0 N1 @- ]9 o; Y/ q
<P><FONT color=#0000ff>/* get new file name from user */ 9 v7 P5 L& I; I3 F+ R2 V$ N, I
printf("Enter a file name to create (no path - ie. a:file.dat\n");
9 x2 c1 d0 J, h0 J) \6 {gets(line); </FONT></P>
: P6 Q% y2 ^% O( r) {<P><FONT color=#0000ff>/* parse the new file name to the dta */ 7 A$ `3 @( n6 }+ D# w8 A" T3 _
parsfnm(line,&blk,1);
( J' B; F4 V: i! J# E2 kprintf("Drive #%d File: %s\n", blk.fcb_drive, blk.fcb_name); </FONT></P>
/ n+ Y* I* O5 c- r6 \: [8 Z<P><FONT color=#0000ff>/* request DOS services to create file */
# I& Y9 Z9 e% D+ H9 E0 Wif (bdosptr(0x16, &blk, 0) == -1) 7 F- l5 D, Z/ y4 p* y
{
, `0 I3 p, H& b- F6 I, sperror("Error creating file"); R' v K0 v5 z3 T
exit(1); 8 |6 L. H; E" {# `& W8 q
} </FONT></P>
$ j# N* j- K L0 Q5 K, k# y<P><FONT color=#0000ff>/* save old dta and set new dta */ , @ F3 r6 Y( a& p( }& H
save_dta = getdta();
2 S* ^7 Z8 p- t F7 Ysetdta(buffer); </FONT></P>$ i! a% T0 @" A7 x8 A( X8 J! y
<P><FONT color=#0000ff>/* write new records */
/ q7 M, l1 G" N, x( i* }blk.fcb_recsize = 256; $ D* e$ m, I# L" M! k+ U# u
blk.fcb_random = 0L; * @0 t- A" N$ J7 @& `* w
result = randbwr(&blk, 1); </FONT></P>
, ?7 q" ^: k! b<P><FONT color=#0000ff>if (!result)
* [0 \- V! T& F5 _! F0 jprintf("Write OK\n");
/ x( i( Q W$ ]8 Z1 Relse
$ L x5 M6 |4 T' D{
( [5 g/ @, _0 l1 F5 H7 dperror("Disk error"); ! @! [2 D# c- @# }
exit(1);
) } \. ^7 E1 j3 `# r! L( Q3 z} </FONT></P>5 \; O4 m8 y% X6 m& }9 v( f$ Q' Z
<P><FONT color=#0000ff>/* request DOS services to close the file */
1 A' m- n5 p3 C& eif (bdosptr(0x10, &blk, 0) == -1)
" g/ e1 ^) J R. q2 T{ 9 `, N. }4 |' L) |& {( m2 d
perror("Error closing file");
% [& |* q9 B4 oexit(1); " ?( S( ]) h4 O8 H
} </FONT></P>
3 A& I8 g; ~: t. o. \<P><FONT color=#0000ff>/* reset the old dta */ * V! R4 H3 X+ B9 `* `" D
setdta(save_dta); </FONT></P>! L# l( q+ I0 d9 M: i* s
<P><FONT color=#0000ff>return 0; 5 B; S$ {' M: T: J
}
# {- m# C! }5 M3 g</FONT>
* K6 | r/ Y% l3 C1 N2 L- B</P>) P% C) v/ w! M
<P><FONT color=#ff0000>函数名: random </FONT>. d3 x1 P1 w, ^( {! F' H( [
功 能: 随机数发生器
) |( t) \1 b8 c4 m用 法: int random(int num); 3 I: Q! U; e0 ?, T* Z, O
程序例: </P>: c3 _. B9 f6 {; V/ y- l. I, o
<P><FONT color=#0000ff>#include <STDLIB.H>
3 u2 ~- D- K% o9 K#include <STDIO.H>7 h( I7 m4 t1 c' x( c) b- w
#include <TIME.H></FONT></P>
f/ c) G+ a4 T" C<P><FONT color=#0000ff>/* prints a random number in the range 0 to 99 */ 2 \8 k. r/ t9 P& Q2 E
int main(void)
0 g; f+ p E( K" H{
1 R7 k* D+ O/ B U8 F! Y$ Qrandomize();
[1 j5 `/ ]: [1 c2 b( K0 D' \; Vprintf("Random number in the 0-99 range: %d\n", random (100)); , S0 z K" X: Y7 _- c
return 0;
4 t2 i& z& c) G$ b) Z, H}
; V" g$ F4 m! l# r4 e</FONT># j9 J9 c0 Y! p! C. a
</P>& f0 [8 _ S; X1 y5 e, d6 P
<P><FONT color=#ff0000>函数名: randomize </FONT>
! C. s4 k3 u# E9 G功 能: 初始化随机数发生器 % [- K/ _7 [) M3 f' [/ N6 S6 k
用 法: void randomize(void);
( s0 [8 N0 ]" m程序例: </P>- |6 ~3 U/ \" w5 S
<P><FONT color=#0000ff>#include <STDLIB.H>7 v: t0 `2 }- u, j9 D6 R4 A
#include <STDIO.H>8 D; T% c$ X+ ]/ R
#include <TIME.H></FONT></P>' e& e Z+ u2 d( W# f! M
<P><FONT color=#0000ff>int main(void) % B. q6 L) w1 C3 w5 ~0 |4 z( H* Q9 D
{
" J: b+ T% [- z5 \int i; </FONT></P>' K% H6 u1 `1 H; Z9 m8 E
<P><FONT color=#0000ff>randomize(); 6 c; W) y- O' W- T
printf("Ten random numbers from 0 to 99\n\n"); ; D( B0 v4 W0 ^4 B
for(i=0; i<10; i++)
6 n/ }8 J$ z" C: \% m1 }: r3 pprintf("%d\n", rand() % 100);
7 v$ t5 n2 @& e% H8 R6 ureturn 0;
, I/ n2 y+ B% B% C5 f: i% \}
6 J9 u; r7 ?& F' J</FONT>0 V# {: e; M% q# D4 y( _
</P>
5 j4 a0 ~, P% }: [- u4 H: u<P><FONT color=#ff0000>函数名: read </FONT>% I$ y3 A' C9 v, o: q
功 能: 从文件中读 5 q* [; h2 V5 Z. s& s1 I
用 法: int read(int handle, void *buf, int nbyte); # S" L" S* g9 Y6 I$ E# w
程序例: </P>
, j# Z! t* p3 K<P><FONT color=#0000ff>#include <STDIO.H>
& p. O* @$ {1 N: u: q8 r$ v- z#include <IO.H>
$ s* e/ ` f. b3 f' B7 }#include <ALLOC.H>
" E* ]( M8 @1 A6 @% }0 n, H3 N! X#include <FCNTL.H>
2 V! ?% Z# V1 P# b: V( _" y#include <PROCESS.H>6 \' P; l7 t: j# w
#include <SYS\STAT.H></FONT></P># A+ f* ]1 b5 W+ H8 w
<P><FONT color=#0000ff>int main(void)
4 C, y- O6 |! d5 p) M1 `# ^6 O% V{ / g1 O3 y! D5 }% `9 |
void *buf; ) V7 ~5 t* d& O" I5 N% H
int handle, bytes; </FONT></P>
% ^; e' l) s. q& F! [<P><FONT color=#0000ff>buf = malloc(10); </FONT></P>5 U- S* K$ H/ s- m7 Q9 | j7 P' ]
<P><FONT color=#0000ff>/* k5 C8 X( S# \- Z
Looks for a file in the current directory named TEST.$$$ and attempts + D7 f" l8 ]3 v _* P
to read 10 bytes from it. To use this example you should create the
W9 F6 E5 s; K' V4 V8 _1 L9 W1 }file TEST.$$$
/ b: M2 j8 u* E4 m9 J*/ / V5 |2 W4 F# N: w6 v$ p
if ((handle =
& X, O- n, O. C; ~2 B' `open("TEST.$$$", O_RDONLY | O_BINARY, S_IWRITE | S_IREAD)) == -1) 7 j" Q$ p3 ]0 h2 t6 b* E' E7 ` k
{
% x, K: l3 d d+ }) j/ Qprintf("Error Opening File\n"); / g1 x" u4 W" j, _6 ^
exit(1);
( Z. ]7 ]' ]( P' e: O: w( Q1 [6 }} </FONT></P>9 L1 _5 S; a. r$ l6 G
<P><FONT color=#0000ff>if ((bytes = read(handle, buf, 10)) == -1) {
: n2 a" K6 `# p; iprintf("Read Failed.\n"); 0 p' q4 ?3 G3 S
exit(1);
" ^- W+ y8 A0 c, z}
; U4 r F3 p+ ?1 d" j6 N) D; Jelse {
; q( o% N+ r8 L' B4 i, T& Iprintf("Read: %d bytes read.\n", bytes);
" L6 T, j* q& X$ z# Y7 J( u}
5 w! H1 B3 i. ?5 ?return 0; / r! ?/ C0 c: N/ E
} </FONT>
+ C9 g" [6 @2 B' W& y
1 Q& V* u" O' I+ E, W9 ^</P>
" N4 e7 n6 |& B# Y' Z<P><FONT color=#ff0000>函数名: realloc </FONT>+ i0 H9 f0 S2 L& v
功 能: 重新分配主存 7 }6 H5 V! N3 ~
用 法: void *realloc(void *ptr, unsigned newsize);
6 s9 E t) ~6 O8 U程序例: </P>6 ~4 I0 K" }4 Q
<P><FONT color=#0000ff>#include <STDIO.H>
. C; r; V( H( t4 v0 S#include <ALLOC.H>* t* H9 b1 S+ w2 z# g
#include <STRING.H></FONT></P>4 ]1 S" T# u1 U6 s4 B; n, k
<P><FONT color=#0000ff>int main(void) 9 I7 N) J5 J7 t, E
{ 0 ^% w& s+ s; D( I
char *str; </FONT></P>* Z, A8 `2 `; o0 [
<P><FONT color=#0000ff>/* allocate memory for string */
+ s% c7 _1 p# c* L* ]3 B. S& fstr = malloc(10); </FONT></P># G! Z' m: v* [. P" s% c$ A
<P><FONT color=#0000ff>/* copy "Hello" into string */
1 z$ m7 n8 o2 J8 M$ ~$ Dstrcpy(str, "Hello"); </FONT></P>9 @4 e" L6 U& S" }" m
<P><FONT color=#0000ff>printf("String is %s\n Address is %p\n", str, str); ! E1 u( a7 w6 S& g" j0 F
str = realloc(str, 20);
) l0 B( ~) e3 eprintf("String is %s\n New address is %p\n", str, str); </FONT></P>2 s/ D: k5 B" a4 A8 }
<P><FONT color=#0000ff>/* free memory */ 0 k- T" G4 |4 o7 k
free(str); </FONT></P>5 R6 f s3 m I
<P><FONT color=#0000ff>return 0; ( z; g! H6 j( T' a; t
}
7 G9 ?1 W ~( O</FONT> f5 N2 L. d" J% Z. S1 V+ H5 {
</P>
# X( C4 N- l J" O; g5 d7 j6 N<P><FONT color=#ff0000>函数名: rectangle </FONT># G' |; K2 {9 e- R- F
功 能: 画一个矩形 ' Q! [8 |: J5 q' G% m! f4 F. o
用 法: void far rectangle(int left, int top, int right, int bottom); ( e9 m+ T5 L2 a
程序例: </P>
( i3 f) p& @% Y/ c/ O% d# s! y" e+ L<P><FONT color=#0000ff>#include <GRAPHICS.H>& N: }- A2 z9 h5 U3 z
#include <STDLIB.H>
( ?1 F7 a" C4 [; S8 o, l( B2 N#include <STDIO.H>
3 h" Q8 t+ n2 w* I3 l' \- _; H#include <CONIO.H></FONT></P>
; I& R3 z' r4 w, M$ E( G. W6 A- y: v<P><FONT color=#0000ff>int main(void) ; z8 [1 E8 o0 `% v% \+ V& k
{
! u1 v5 E2 I5 e( o4 |! A9 A/* request auto detection */ $ e( ^8 K! p8 n2 o8 V
int gdriver = DETECT, gmode, errorcode; & Q+ K2 ~) _6 e) i- |1 j
int left, top, right, bottom; </FONT></P>. B( v5 s/ c& h+ z( L
<P><FONT color=#0000ff>/* initialize graphics and local variables */ # `7 O# H* @2 K
initgraph(&gdriver, &gmode, ""); </FONT></P>
9 i: t6 u; V+ W9 g) h. Y8 e: e5 _% @<P><FONT color=#0000ff>/* read result of initialization */ 5 W5 Z" v. z' M X+ s
errorcode = graphresult();
: t; i3 j$ c Fif (errorcode != grOk) /* an error occurred */
& y+ j5 I9 i1 G7 i- Y& ^$ N{ ! G& u5 w+ U: s9 ~
printf("Graphics error: %s\n", grapherrormsg(errorcode)); 3 k0 ?( m* i2 l6 }
printf("Press any key to halt:");
/ Z; T j, G8 mgetch(); 4 Q O' N/ R4 n+ y8 Q
exit(1); /* terminate with an error code */
1 |$ Y7 U6 J- V6 q+ Q4 y} </FONT></P>
2 c: P, _, I% X6 M: `, t- w( j<P><FONT color=#0000ff>left = getmaxx() / 2 - 50;
/ G( A9 f" p- ltop = getmaxy() / 2 - 50; / g/ j2 Z% C7 R; \( c! y
right = getmaxx() / 2 + 50; ( s4 M! v1 r7 V0 ?' B6 S
bottom = getmaxy() / 2 + 50; </FONT></P>
n* [ `" ~" S# g' i& _$ Z<P><FONT color=#0000ff>/* draw a rectangle */
3 T( r1 N0 b! b: }. ~rectangle(left,top,right,bottom); </FONT></P>$ @. {/ Q5 x" `( U M( M5 _* z V
<P><FONT color=#0000ff>/* clean up */
0 {" l4 G# h* E; z! [; P, Pgetch();
5 o( L; K# | z4 `- G) z+ G' Hclosegraph(); & \- i9 [$ L0 w6 f
return 0; ' D, _5 `# w4 m* Z7 Q) t
} - X+ y. M/ W5 P9 ?
</FONT>
" \9 |+ j J0 G3 T9 ^% r</P>+ \# R4 N0 w. J5 @ _
<P><FONT color=#ff0000>函数名: registerbgidriver </FONT>3 g0 v2 T/ o4 b+ W/ q. W
功 能: 登录已连接进来的图形驱动程序代码 / P; Q# W, ?% n8 D+ `4 T
用 法: int registerbgidriver(void(*driver)(void)); 6 y8 B8 j' _: Y" E" o
程序例: </P>- \' A2 d: [2 P9 O
<P><FONT color=#0000ff>#include <GRAPHICS.H>
8 k, [1 X( X$ H% n+ M" Z#include <STDLIB.H>' s6 F% R5 o7 B: |! ]. x
#include <STDIO.H>2 H% L/ W* {- d' c
#include <CONIO.H></FONT></P>8 G6 S/ ?7 _5 f# I' D: Z& I$ E; i
<P><FONT color=#0000ff>int main(void) 5 r' N$ C. t3 s
{
% P k4 g1 G; p# F/ r2 Q, \/* request auto detection */ 9 ?/ {5 H# v; Z4 s
int gdriver = DETECT, gmode, errorcode; </FONT></P>2 B; n/ G# E& j- @8 i) P
<P><FONT color=#0000ff>/* register a driver that was added into graphics.lib */ 8 X7 j8 i$ V7 j! j! ?
errorcode = registerbgidriver(EGAVGA_driver); </FONT></P>. v! F3 i' w# L% ~4 X6 z& Z' J
<P><FONT color=#0000ff>/* report any registration errors */
! G, g: [" u0 i0 e5 R$ B( Xif (errorcode < 0) , ?* q m. T' V# ~
{ 4 h/ a, p( }8 I# K+ P. v
printf("Graphics error: %s\n", grapherrormsg(errorcode)); / s: |/ u# P0 Z% I5 M8 a
printf("Press any key to halt:"); 5 l. J# e3 n9 ]0 ], t9 Z
getch(); 4 y# A3 I5 J/ Q7 H$ a
exit(1); /* terminate with an error code */
2 x4 d' R. |; B} </FONT></P>0 q; a6 Y# G2 u5 `+ F0 M
<P><FONT color=#0000ff>/* initialize graphics and local variables */
+ i/ _. H; |3 x: @initgraph(&gdriver, &gmode, ""); </FONT></P>; o6 A7 l& c5 `% ?4 X
<P><FONT color=#0000ff>/* read result of initialization */
+ V- r& J2 W9 Werrorcode = graphresult();
% m+ N5 S7 x5 c+ q( T/ \" Pif (errorcode != grOk) /* an error occurred */
9 W& U4 Q( | f0 t6 O) t& j- x{
i9 a' @$ ^+ l* l1 jprintf("Graphics error: %s\n", grapherrormsg(errorcode));
1 J" F/ \& F i5 C; C- A; Dprintf("Press any key to halt:");
6 m+ c' c. [% Wgetch(); 9 Y1 C- |; U5 k% V7 t3 J8 C; S
exit(1); /* terminate with an error code */ 8 V5 H9 p# E9 H: c) K" I
} </FONT></P>
$ T, h$ B8 r! g2 ^; n5 v2 ^, C8 B" ?<P><FONT color=#0000ff>/* draw a line */ 4 v, w, G3 I2 F2 H1 H' v* W7 K) O
line(0, 0, getmaxx(), getmaxy()); </FONT></P>+ J* ~, |+ v# Z
<P><FONT color=#0000ff>/* clean up */ & n+ h# j# f, e
getch(); 2 s1 R; d3 B3 f8 S/ s
closegraph();
7 r0 p7 D/ `9 \( J I- preturn 0;
" h5 \: e- S# S9 v7 d) f}
8 y# v9 O% k" Z! ?& l% ]7 X</FONT>
) @& d, U1 s m9 E2 q2 L# @</P> T$ ^0 }( J o. K3 _
<P><FONT color=#ff0000>函数名: remove </FONT>
% p: h8 e; D7 V$ @; i功 能: 删除一个文件 0 U( N8 a0 B X1 j D& Q
用 法: int remove(char *filename);
" h ^' ^6 e* }" G! I, L7 [ ?! X程序例: </P>
" L5 z" ]5 h2 _3 k# l<P><FONT color=#0000ff>#include <STDIO.H></FONT></P>
" {! c: H" A7 E. x2 R0 g, k<P><FONT color=#0000ff>int main(void) & s* x! X: g: a3 G' x) E
{
7 }$ w$ [' u% C' v6 {# a2 S s Z: ochar file[80]; </FONT></P>6 K& x+ L! {3 n4 t, F* B
<P><FONT color=#0000ff>/* prompt for file name to delete */
P" S: q1 Y$ z+ Rprintf("File to delete: "); ' H; V9 k4 ^& f
gets(file); </FONT></P>* F5 ?0 X) s2 y6 A
<P><FONT color=#0000ff>/* delete the file */ * x+ c( U9 e5 Z. f6 U9 c' w
if (remove(file) == 0) # b2 e$ P/ }3 w z/ A
printf("Removed %s.\n",file); ; x* u& ^3 |" \+ z$ O& { d
else ) ]8 e# |2 X0 }( E6 w- G
perror("remove"); </FONT></P>9 J; S* F: a6 Z' \4 U
<P><FONT color=#0000ff>return 0;
4 G* H$ ?/ j7 p( C) v; v- s} ! [: \: d( p" P
' r$ _: a0 x7 `& a- g- w4 d- @ j
</FONT></P>: X4 p3 `/ C G
<P><FONT color=#ff0000>函数名: rename </FONT>
7 U1 J1 [' y9 m; x% Y' }; k7 M功 能: 重命名文件 # j) \8 N2 a( t- F! E: b8 z" w4 m
用 法: int rename(char *oldname, char *newname); - ]9 K$ S4 ? {4 o9 r4 i
程序例: </P>% \4 M+ _: f( O
<P><FONT color=#0000ff>#include <STDIO.H></FONT></P>
, G; Q" h) {: b<P><FONT color=#0000ff>int main(void)
& v' l7 W: @' \9 u8 y% x' X9 Q! L{
. O7 C7 H( k+ b' tchar oldname[80], newname[80]; </FONT></P>
3 u* E) L# J( Y8 H# D) P- B3 P& t9 q<P><FONT color=#0000ff>/* prompt for file to rename and new name */ ) X' a2 F; _' j$ V3 _$ C! P
printf("File to rename: "); 7 `9 O- M7 u) @6 u( X% D% C
gets(oldname);
! K- \& D9 E# s2 J3 rprintf("New name: ");
; E" v/ }+ W" v. H9 {$ N- Dgets(newname); </FONT></P>
6 n' S/ s2 _! j<P><FONT color=#0000ff>/* Rename the file */ y% a5 [7 T9 z0 N) U7 ]
if (rename(oldname, newname) == 0)
0 O7 O1 e% M8 i1 E9 {printf("Renamed %s to %s.\n", oldname, newname); 9 X0 j/ j) Q, x: |$ n3 C
else
( v: q1 P/ ?9 r4 J3 }perror("rename"); </FONT></P>
2 j4 X0 y' z! C+ r<P><FONT color=#0000ff>return 0; ; F" Q/ Z$ u3 R1 }* j$ V( i1 @
}
7 t( c* e$ W9 ]1 p4 W9 {4 ]
% ^! X7 H! c8 M; P+ z% O4 g</FONT></P>
- _6 p: w, X9 @% J) ^<P><FONT color=#ff0000>函数名: restorecrtmode </FONT>
' _2 s) d, [* M) V9 ~: ~+ Z0 A6 h功 能: 将屏幕模式恢复为先前的imitgraph设置
2 R: P1 L' W3 ], w+ ]用 法: void far restorecrtmode(void);
% s* J0 T- m4 V& V8 A程序例: </P>
- C N3 c' j5 O5 X0 M<P><FONT color=#0000ff>#include <GRAPHICS.H>, ^) }/ n! L& _5 w: b; X3 W
#include <STDLIB.H>
% z! b2 I' e' x: O#include <STDIO.H>. d8 m) t4 U G
#include <CONIO.H></FONT></P>) H# k6 |. e: O! G* C- ^
<P><FONT color=#0000ff>int main(void)
( e0 B' L$ E+ j{ 2 R+ o' ?( i s8 i$ h# D" Y
/* request auto detection */ ' X6 W4 ^+ y _
int gdriver = DETECT, gmode, errorcode;
* t' M$ N8 h) z. ~; b/ qint x, y; </FONT></P>
4 o" { k" @! G- Q6 ?<P><FONT color=#0000ff>/* initialize graphics and local variables */
$ F/ ~* }0 ~5 H6 `6 tinitgraph(&gdriver, &gmode, ""); </FONT></P>
/ a, h4 `; O4 M2 j<P><FONT color=#0000ff>/* read result of initialization */ 0 S" ~ x* X9 r) |
errorcode = graphresult();
$ j9 |# `! l3 U% v, Yif (errorcode != grOk) /* an error occurred */
- T; S: o* r. }) [7 G{
/ ~, E( E' s$ C$ B- z/ B$ _printf("Graphics error: %s\n", grapherrormsg(errorcode));
4 o% D( b8 p/ w9 l8 aprintf("Press any key to halt:"); & b6 e/ c1 B! ?; h: l
getch(); 6 a& u/ ^$ l/ @( {; R1 |' W
exit(1); /* terminate with an error code */
# ~: W& X% s) W& }% \' D} </FONT></P>
% }( N8 D- a9 o9 M8 e<P><FONT color=#0000ff>x = getmaxx() / 2; ' ^+ ?- P! J, r$ E, v
y = getmaxy() / 2; </FONT></P>
( y, D! k1 x" A5 r i<P><FONT color=#0000ff>/* output a message */ $ F' k' E( ~& k) a% {# m
settextjustify(CENTER_TEXT, CENTER_TEXT);
0 e4 n% n7 b6 N1 f" [( v6 G7 ^ Wouttextxy(x, y, "Press any key to exit graphics:");
1 Q) F1 o# `0 n3 _+ G1 o! H fgetch(); </FONT></P>. a" L1 {9 k7 J
<P><FONT color=#0000ff>/* restore system to text mode */ 9 J. Y9 _* d& {
restorecrtmode(); " @" \; g `+ w( Z7 z- P
printf("We're now in text mode.\n"); / m9 |% n0 o! n: b! D
printf("Press any key to return to graphics mode:");
) t. C! a* i' g6 \5 c7 Vgetch(); </FONT></P>
% r5 L- e; E! ^! e<P><FONT color=#0000ff>/* return to graphics mode */
o: c5 B+ s5 m, q' S: D( Fsetgraphmode(getgraphmode()); </FONT></P>8 T6 Y2 T3 g( q0 H* \6 [5 @" e
<P><FONT color=#0000ff>/* output a message */ ! E8 O( {, W5 u2 ]4 V
settextjustify(CENTER_TEXT, CENTER_TEXT); ) W: J( e. K: [0 `9 U
outtextxy(x, y, "We're back in graphics mode."); / z! t( u( Q) {/ V
outtextxy(x, y+textheight("W"), "Press any key to halt:"); </FONT></P>
* R' E' \8 U9 R) b<P><FONT color=#0000ff>/* clean up */
% `# ~, x& o+ k- \6 `getch();
* c+ }0 T f( uclosegraph();
" k! t. q+ I8 X" mreturn 0; 9 y3 _ S/ _) n6 ~5 m, V. G
}
. V; O: B5 b8 ^6 @- W</FONT>2 {; g9 `' [) p6 {
</P>
G0 M( D) o* l- J6 k4 Q: U7 {<P><FONT color=#ff0000>函数名: rewind </FONT>7 d' \. Z( @9 p# \, O5 N
功 能: 将文件指针重新指向一个流的开头
6 d( H, s3 T8 q4 I; L/ J. k1 B用 法: int rewind(FILE *stream);
1 U2 ^8 F* E( S$ K8 ?+ M0 u% K* d1 R程序例: </P>
% i0 o, ~8 e3 _7 A<P><FONT color=#0000ff>#include <STDIO.H>
/ {4 O3 V1 W& Y#include <DIR.H></FONT></P>
0 y. H# O) u$ p b8 a5 |% X8 C<P><FONT color=#0000ff>int main(void)
6 F8 ~# `" Q7 o. L, I/ r- r{ 0 x' G. G0 A' k, Y0 o
FILE *fp; " G+ b n; L1 E" ^4 f' a7 M. U
char *fname = "TXXXXXX", *newname, first; </FONT></P>
8 F8 U9 a: L, v<P><FONT color=#0000ff>newname = mktemp(fname);
' Q7 q( c { p; nfp = fopen(newname,"w+"); . E0 y. V: O% y \# u& T
fprintf(fp,"abcdefghijklmnopqrstuvwxyz");
3 Z- l& a: v1 frewind(fp); , y/ G% @- X" W
fscanf(fp,"%c",&first);
) w [5 q+ ?, Uprintf("The first character is: %c\n",first); 1 ^; P/ a I7 H0 h+ K
fclose(fp); # ~4 B8 N2 h7 X: {1 V$ o1 Z# S
remove(newname); </FONT></P>
; {& Y+ U2 ^! }+ `( e7 |1 n9 ^/ ~<P><FONT color=#0000ff>return 0; & I2 i. ~ A a2 d6 I$ ]: S
} 1 ?5 O4 f2 f+ t4 B" D
</FONT>- z& E* Y6 q' w0 F7 h3 Y
</P>$ j7 \2 J( V" j. j( d
<P><FONT color=#ff0000>函数名: rmdir </FONT>
' ]+ h, ]" ?; S# I% z. O3 o B功 能: 删除DOS文件目录 : {. N9 D- z& J' e) X7 v5 Y; u& [
用 法: int rmdir(char *stream); 1 f% i8 Z0 H9 M F0 M& m
程序例: </P>
( L" l! a8 k" ~- q/ o( _# @7 C4 [2 q<P><FONT color=#0000ff>#include <STDIO.H>( S/ K, W2 c5 v& b8 q! `
#include <CONIO.H>0 D6 C* s! l8 r) X
#include <PROCESS.H>
) [3 \! N( y% c. B8 @! L3 Z$ U. ]#include <DIR.H></FONT></P>
) y5 z/ ?% v8 @& U4 h, Q- W U% b" J<P><FONT color=#0000ff>#define DIRNAME "testdir.$$$" </FONT></P>0 N' ?8 E, U5 v5 `% L+ Q
<P><FONT color=#0000ff>int main(void) . G( }! w8 K: e6 a, [
{ - O9 R2 U7 R1 y! h, H* V5 c
int stat; </FONT></P>
6 g, V) I6 Y, R, h% i- E1 U$ ] O<P><FONT color=#0000ff>stat = mkdir(DIRNAME); - |; F, I& j0 g* ]( G
if (!stat)
2 j7 n+ j4 ?/ u$ vprintf("Directory created\n"); 7 _+ K+ B$ z3 U, f; k
else
( d/ e4 r. n+ C2 }7 f{ . f" a6 A% Y& ^4 b1 @8 q% }( x
printf("Unable to create directory\n");
! j- e8 X/ s% l. \% u6 dexit(1); ' B! A- y: `: m5 E" @
} </FONT></P>
6 B2 W3 u; `( y8 N* S& @<P><FONT color=#0000ff>getch();
/ t6 H: P( N+ \" a3 X) a( Xsystem("dir/p");
; x) N3 J* `( i. o* L) bgetch(); </FONT></P>
* d' w' e2 J$ x6 h<P><FONT color=#0000ff>stat = rmdir(DIRNAME);
7 i) w1 Z) v0 H" n* Lif (!stat)
8 m9 B8 I7 w8 k9 ^+ A& H; |2 J6 h) Qprintf("\nDirectory deleted\n"); 1 V3 ^/ V6 I- H5 G; ]
else " X v- d* J: Z* w$ d# O* k: J8 @
{ & \- \6 @' K, C* G
perror("\nUnable to delete directory\n");
5 T; T$ E( C: S6 Fexit(1);
4 G! X, |5 m# k9 G} </FONT></P>
$ a% Z: { c$ n8 }, |<P><FONT color=#0000ff>return 0; : Q" Z* Z+ n! Q* }" \
} </FONT></P> |
zan
|