数学建模社区-数学中国

标题: 函数大全(u开头) [打印本页]

作者: 韩冰    时间: 2004-10-4 02:54
标题: 函数大全(u开头)
<><FONT color=#ff0000>函数名: ultoa </FONT># `  f+ ]+ R& ^+ Y7 q6 s
功 能: 转换一个无符号长整型数为字符串   c" M) [% x/ [. H$ s
用 法: char *ultoa(unsigned long value, char *string, int radix); ( U6 b* v" M$ `6 h# @
程序例: </P>! G7 H0 l+ h" U
<><FONT color=#0000ff>#include <STDLIB.H>
$ }, [4 w* ^* ?#include <STDIO.H></FONT></P>
; [" u: f; x1 c) E- }' ~<><FONT color=#0000ff>int main( void )
  ]4 g% S: @+ h( O3 H{ * q% ]7 W1 [- Y& Q2 k0 I8 U
unsigned long lnumber = 3123456789L;
0 C7 G0 i5 w$ A$ V6 O( j* fchar string[25]; </FONT></P>& d/ V  @: k/ }0 o
<><FONT color=#0000ff>ultoa(lnumber,string,10); % l1 F! P/ O4 w# P0 D* G; A; a
printf("string = %s unsigned long = %lu\n",string,lnumber); </FONT></P>
4 V1 l& b: R, w, Z  j4 c4 M4 |<><FONT color=#0000ff>return 0;
8 [6 }# v0 k/ }, U0 }6 K}
6 T/ W( w5 L  l3 s</FONT>
) }- K  _+ Z# O2 i4 a: T
  ]' Y3 P' r4 H9 |& f+ E</P>
6 f+ [, F/ M- v# x4 t, h7 z<><FONT color=#ff0000>函数名: ungetc </FONT>7 d$ D2 d  w1 l5 d, T4 C. I; @
功 能: 把一个字符退回到输入流中 & _' Z. o- I# _9 ^% w* P/ S3 Q
用 法: int ungetc(char c, FILE *stream);
: k, b# y6 Y  s程序例: </P>
! M5 V, |% T7 E<><FONT color=#0000ff>#include <STDIO.H>
; K4 @; F* F. M" n#include <CTYPE.H></FONT></P>
, `* V( I. S3 f( j* D0 g% U<><FONT color=#0000ff>int main( void ) 0 {, q0 D- K7 E  ^$ j0 O, c% B
{
1 A# I: J  o9 R0 ?int i=0; 2 ~/ l) \7 k4 u, Z1 w, B/ s! N
char ch; </FONT></P>% {) ]5 ~% I( p4 e2 P, h) B# `
<><FONT color=#0000ff>puts("Input an integer followed by a char:"); </FONT></P>; U9 n2 j+ a' B8 v
<><FONT color=#0000ff>/* read chars until non digit or EOF */ - b  n% f  L- G; P- d/ d  x
while((ch = getchar()) != EOF &amp;&amp; isdigit(ch))   W' f# X+ E8 H' _7 l
i = 10 * i + ch - 48; /* convert ASCII into int value */ </FONT></P>* X7 U, r- i: ]) C( e+ h
<><FONT color=#0000ff>/* if non digit char was read, push it back into input buffer */
  x$ G2 K0 x6 P  C: xif (ch != EOF) , H: B. E; |7 E7 U7 Q
ungetc(ch, stdin); </FONT></P>
) D+ }* h; ]2 a1 K4 J* Z<><FONT color=#0000ff>printf("i = %d, next char in buffer = %c\n", i, getchar()); ' P, W5 n7 J% q* b7 D6 N' Y$ ^/ B. i7 B
return 0; ) l7 w9 g, V- t( `: T* V. L
} </FONT>
  w8 E# R: x* ^
) z2 C9 e( G" [9 v6 J. e
' i% _3 D' G' Z8 h; U</P>
2 g; c( ?$ s4 L! z& [9 C4 j<><FONT color=#ff0000>函数名: ungetch </FONT>! V( M0 l; ?1 l8 R5 k
功 能: 把一个字符退回到键盘缓冲区中
+ U* y2 G2 i. T' l6 x, E9 I用 法: int ungetch(int c);
3 x/ K( s6 ?8 Y2 l. z4 T* z( N9 b0 S6 [程序例: </P>0 P7 T* A$ ~: K0 d
<><FONT color=#0000ff>#include <STDIO.H>
+ N! F% g# K! d#include <CTYPE.H>
8 F% h/ J- C8 i' }! h5 P#include <CONIO.H></FONT></P>
( A6 H, {/ _, E2 L9 i<><FONT color=#0000ff>int main( void ) 7 M; Q$ T) Q! W
{ 8 F. G, h6 ~* ?  y1 ~) p
int i=0;
" D/ N+ K) i( d9 Y( T/ G5 @char ch; </FONT></P>" w1 k& ~6 S) W. \. p8 _) G1 W/ Y
<><FONT color=#0000ff>puts("Input an integer followed by a char:"); </FONT></P>* Z& U3 }9 ~- N: L& p+ X
<><FONT color=#0000ff>/* read chars until non digit or EOF */
" A* y; g1 ^# M4 z$ n3 ~while((ch = getche()) != EOF &amp;&amp; isdigit(ch)) 6 D: x6 H' l5 I2 ]* K, D: W
i = 10 * i + ch - 48; /* convert ASCII into int value */ </FONT></P>
* }& B6 }# Z5 \9 A<><FONT color=#0000ff>/* if non digit char was read, push it back into input buffer */
4 a. {! Q6 C0 x6 [& S0 }+ ?if (ch != EOF) * t9 L, j' R* t
ungetch(ch); </FONT></P>' u3 {3 @9 B2 s* y( F0 \; C
<><FONT color=#0000ff>printf("\n\ni = %d, next char in buffer = %c\n", i, getch()); ; L+ u( j. k5 m& N7 ^
return 0; + ?  i& v3 j: T, K4 T. F
} 6 b  d! V5 b' K6 ~" n. }

6 R% M$ f# _# f. p& Z/ l, O1 @  T' @* j0 S+ r
</FONT></P>, ?8 w' [, O+ k; g- s$ d& G2 h: |
<><FONT color=#ff0000>函数名: unixtodos </FONT>1 g) |. L9 \+ G8 f( W
功 能: 把日期和时间转换成DOS格式 8 q5 o6 C, \: S  F5 i  o
用 法: void unixtodos(long utime, struct date *dateptr,
, Z/ h2 V0 m1 o: Astruct time *timeptr);
+ M' P. w9 p" x/ y5 w0 ?& _程序例: </P>6 }4 [( D& I* N2 ~; o- y( z
<><FONT color=#0000ff>#include <STDIO.H>
4 f) g/ j! A0 K$ A& S#include <DOS.H></FONT></P>1 r/ S1 J8 x% R
<><FONT color=#0000ff>char *month[] = {"---", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
$ c% J- X+ a1 `: u1 h% w"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; </FONT></P>  w+ d* `1 x2 o7 D. z* Z
<><FONT color=#0000ff>#define SECONDS_PER_DAY 86400L /* the number of seconds in one day */ </FONT></P>6 _' ~& t- F% J) }$ ?' A
<><FONT color=#0000ff>struct date dt;
8 i# c; c# K4 |1 p* U/ K7 Gstruct time tm; </FONT></P>
- G( w) l3 O* a0 N5 f<><FONT color=#0000ff>int main(void) ! F" E+ q: f* }  B
{
) N2 {. g: S% J3 x- Xunsigned long val; </FONT></P>
  E! `) j2 j, w" B3 A<><FONT color=#0000ff>/* get today's date and time */ # \8 i' X; _/ X: V7 G
getdate(&amp;dt); ' `) K& }) I3 M6 |* c3 ~) ]( @6 [
gettime(&amp;tm); ; b" P; Q; d! {' B! ^
printf("today is %d %s %d\n", dt.da_day, month[dt.da_mon], dt.da_year); </FONT></P>
3 x3 w$ o) w9 y# |<><FONT color=#0000ff>/* convert date and time to unix format (number of seconds since Jan 1, 1970 */
( D: \2 p9 H% X+ b$ uval = dostounix(&amp;dt, &amp;tm);
; I2 c0 a2 }+ C% d' q/* subtract 42 days worth of seconds */ # [: C/ g, r% C) \2 F# R
val -= (SECONDS_PER_DAY * 42); </FONT></P>
3 i+ i! y) }4 W* q) ^<><FONT color=#0000ff>/* convert back to dos time and date */
' `1 k+ L* h  m* o; [unixtodos(val, &amp;dt, &amp;tm); ; w1 J  `6 _5 E, ^6 y1 N
printf("42 days ago it was %d %s %d\n",
- h: w5 h* Z/ j+ R3 edt.da_day, month[dt.da_mon], dt.da_year); 3 b  {) J- }  O$ c' P' j
return 0; " }$ _2 p$ H! U( I
} ; L- j1 {; ?0 O9 Q2 v
; S: y3 t! b) A( m) w0 W4 S* V0 c
) r. S8 `1 ]# z! c( D! ]$ v
</FONT></P>
  F9 y. M$ k% I( P3 E2 t$ Z4 q<><FONT color=#ff0000>函数名: unlink </FONT>
. {0 V- h8 @1 h/ Z功 能: 删掉一个文件 0 v: U  e  x6 Z$ s! ]
用 法: int unlink(char *filename); / r0 J, M2 x- a. N) d- c2 D2 F
程序例: </P>
1 t6 R7 m8 a8 x0 T7 m2 X. e<><FONT color=#0000ff>#include <STDIO.H>9 A7 ]: X! G/ Y' x. ?8 n
#include <IO.H></FONT></P>& G0 V. N* W$ z9 v& e( ]9 @8 ]
<P><FONT color=#0000ff>int main(void)
7 N' J$ Q7 N2 R  F3 T1 D: w% V{
- v2 r+ s! S. c# d2 P2 {FILE *fp = fopen("junk.jnk","w"); 2 k( o6 {: |" W- ^9 E
int status; </FONT></P>6 Q6 y' S: q% m3 _
<P><FONT color=#0000ff>fprintf(fp,"junk"); </FONT></P>
) s  L0 T, g5 I$ q( F4 d" j<P><FONT color=#0000ff>status = access("junk.jnk",0);
; V8 o- L- s9 F! B0 Yif (status == 0) 9 {; ]7 \* i* l4 k7 T4 ^  ]5 e
printf("File exists\n"); . J2 L: `* V0 g+ t% t0 P/ w
else   p) b0 r* x9 F  ~+ ^
printf("File doesn't exist\n"); </FONT></P>
6 X8 X7 K, ~9 I' F& ?. o<P><FONT color=#0000ff>fclose(fp);
$ y2 b' I$ _8 {3 t2 r8 r$ T6 {unlink("junk.jnk");
7 m/ u! Q, h; ?status = access("junk.jnk",0);
! N% \5 ?; R1 z3 _" q' z( S3 hif (status == 0) ; v8 A( x0 k* e; v9 K9 f5 ~
printf("File exists\n"); & z( W! @2 |4 ]9 L
else 1 N" ^! m2 D0 V: Y
printf("File doesn't exist\n");
6 U  N: C  b. f- n0 Z2 c6 }</FONT></P>
4 }+ F5 w# f! b  \, Y) `; d# ?) W<P><FONT color=#0000ff>return 0;
4 Q' h5 V7 i+ I} 3 B  |7 N# P3 R) X/ ]! T% N' T

2 J( o) t* k5 Z( k. S! a</FONT>! \9 |9 }" U* J! W
</P>5 z' \. m: G% g" L; k) _
<P><FONT color=#0000ff>函数名: unlock </FONT>* N* R& y$ j7 ]( A; k6 {
功 能: 解除文件共享锁
5 f. Y2 |+ ]) A3 a& l9 c用 法: int unlock(int handle, long offset, long length);
% n) t2 G2 J9 Q! O  v程序例: </P>3 A& @  [* s; K# R* H5 V+ B" p8 B# q
<P><FONT color=#0000ff>#include <IO.H>/ R/ k9 A6 F, Q3 |/ ^; _
#include <FCNTL.H>' f- T9 @9 B. z" d1 S
#include <SYS\STAT.H>! O+ X1 e+ k8 Y* D! {0 r4 _
#include <PROCESS.H>& H2 c4 Y4 d* B& q
#include <SHARE.H>2 z+ L' K! z' d( E1 j
#include <STDIO.H></FONT></P>( s8 z0 c' M' [) `! q) T# [' E
<P><FONT color=#0000ff>int main(void)
) R" L9 o' J% {{ ! p' d4 d( Y5 i' {2 @/ q+ j
int handle, status; 6 e+ Q& z. a, R8 T8 n+ l
long length; </FONT></P>
) n+ `6 b% D/ a  a) n( f6 ~<P><FONT color=#0000ff>handle = sopen("c:\\autoexec.bat",O_RDONLY,SH_DENYNO,S_IREAD); </FONT></P>9 v% d$ O& }' J8 g
<P><FONT color=#0000ff>if (handle &lt; 0)
6 g8 D. ^, L) h. X/ f- T9 @{ 7 S  k- C  F7 ^/ Z6 }& d
printf("sopen failed\n");
* f" h  D% G  N5 k" [9 w. X; wexit(1); 2 v: C: n( E2 }- D3 V( z5 `
} </FONT></P>
! V9 R9 I% J" r8 x1 N<P><FONT color=#0000ff>length = filelength(handle);
$ _7 e$ t! l2 M4 u$ e! [" k" Estatus = lock(handle,0L,length/2); </FONT></P>
7 \! i0 ]% R! K% u, @# O# R& _<P><FONT color=#0000ff>if (status == 0) " @8 M! f/ G  @2 s6 U9 K# v
printf("lock succeeded\n"); : U2 d7 i5 M6 t/ ~% E
else
. o) U4 ?, B: t2 q+ X6 gprintf("lock failed\n"); </FONT></P>4 ^5 T: l4 i. E, D$ i2 b
<P><FONT color=#0000ff>status = unlock(handle,0L,length/2); </FONT></P>
- Z/ q, X- h" t+ W9 \<P><FONT color=#0000ff>if (status == 0) / W6 o7 M& i. m' q
printf("unlock succeeded\n"); # M! l' F: [+ E$ L7 F
else
6 E. K) J/ Q! g: A8 ?/ Vprintf("unlock failed\n"); </FONT></P>9 P$ Z) X; p6 J, o
<P><FONT color=#0000ff>close(handle); 3 n" U' P+ f; o6 ^$ i0 P
return 0; " t' }& ]& M8 S. k$ M6 h
} </FONT></P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5