数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-4 02:54
标题: 函数大全(u开头)
<><FONT color=#ff0000>函数名: ultoa </FONT>
/ r* X$ B3 Q* p) Y, t9 S' J; B功 能: 转换一个无符号长整型数为字符串 0 p) H; M' G4 X" c
用 法: char *ultoa(unsigned long value, char *string, int radix); % L7 |1 z1 b2 m% q5 }/ @0 [2 V2 x0 F
程序例: </P>
" J- K  u" I/ K9 k+ Z! }<><FONT color=#0000ff>#include <STDLIB.H>
7 i' z* z& _8 Y! r1 d#include <STDIO.H></FONT></P>
4 I# d7 g1 o1 \& B  s  b<><FONT color=#0000ff>int main( void ) $ T, n. B6 P' `$ z2 s
{
/ j3 ~$ }; g4 U2 M# Dunsigned long lnumber = 3123456789L; 1 y% e  K, A+ [/ |$ j# {
char string[25]; </FONT></P>
+ H# L) d3 g6 |4 U1 ]; |6 s6 V- q<><FONT color=#0000ff>ultoa(lnumber,string,10);
& N; ^; y/ x7 J2 c0 C/ Cprintf("string = %s unsigned long = %lu\n",string,lnumber); </FONT></P>
# ]$ W: M8 n6 b8 N" A<><FONT color=#0000ff>return 0; 4 H! i) s" z" R8 ~5 T7 s
} 0 A+ a8 B  J% q
</FONT>
: |# s6 F. C- \: `- s- x- u, z& f8 @" a: y$ c, R
</P>
  f2 }( W% J/ g5 W3 k<><FONT color=#ff0000>函数名: ungetc </FONT>4 w' f# p4 C. ~2 P' b& _
功 能: 把一个字符退回到输入流中 + y' \( y; h5 G, Q; y6 m0 ]
用 法: int ungetc(char c, FILE *stream); 6 R% D5 c/ H$ y! a. g+ o/ i+ U
程序例: </P>/ L$ j' N/ F$ q' k* l0 t
<><FONT color=#0000ff>#include <STDIO.H>
3 k6 _6 U3 n5 c( k$ A#include <CTYPE.H></FONT></P>/ l# h- g% n, D/ p
<><FONT color=#0000ff>int main( void )
6 s5 K* U! f* e+ x, }+ Q& n* K- ^{ , Q- w! ]. f1 |4 B
int i=0; 0 }' V) s- \; N) ~
char ch; </FONT></P>
6 p$ u$ o6 I2 g3 {* @/ R; V$ u<><FONT color=#0000ff>puts("Input an integer followed by a char:"); </FONT></P>% ~! z6 w: C6 V! u  m, [5 C
<><FONT color=#0000ff>/* read chars until non digit or EOF */
$ F! G8 u5 L+ c" i7 owhile((ch = getchar()) != EOF &amp;&amp; isdigit(ch))
: g$ k. J, a- pi = 10 * i + ch - 48; /* convert ASCII into int value */ </FONT></P>
6 C( q& V8 \8 R" n0 `7 s<><FONT color=#0000ff>/* if non digit char was read, push it back into input buffer */
7 ]1 m3 n% P6 z- F5 E( M" Dif (ch != EOF)
: y9 b6 V/ g5 s5 V: eungetc(ch, stdin); </FONT></P>
7 u# O/ t& U7 }! h% a8 \. j! R<><FONT color=#0000ff>printf("i = %d, next char in buffer = %c\n", i, getchar());
7 v; L0 H! Z) u% `0 v7 \( E# N/ freturn 0;
- n# ]( x' j% N9 i+ u} </FONT>- w# a+ f+ d2 z' I2 t2 Q- e

7 u; ~. P, r3 q5 [% H7 z4 I
5 z2 k  I$ m4 |# z) w- T2 T' `7 p</P>+ d3 `" l' I' F3 N$ V
<><FONT color=#ff0000>函数名: ungetch </FONT>
% `+ F2 b% k9 Q1 ]* O; h功 能: 把一个字符退回到键盘缓冲区中 & U+ V' i+ Q. R8 c4 w. {
用 法: int ungetch(int c);
4 G( {# f, W6 S( v7 o6 d+ g0 z4 n7 u程序例: </P>+ u$ o( l- M* |. h0 S+ n. w
<><FONT color=#0000ff>#include <STDIO.H>9 c& J* O6 g8 p- N# n( @
#include <CTYPE.H>  P* e0 T, |  K0 O# E. d, r
#include <CONIO.H></FONT></P>; Z- \# k- Z! _0 k  k4 g
<><FONT color=#0000ff>int main( void ) ) V6 d& O  W( U1 m
{
$ G, H, \" Z1 sint i=0;
# I7 n- ?4 ?, G' Vchar ch; </FONT></P>/ v/ W8 `; W4 t
<><FONT color=#0000ff>puts("Input an integer followed by a char:"); </FONT></P>9 T+ ]4 ~3 t4 c* Q  H4 ]) ?( j. Z
<><FONT color=#0000ff>/* read chars until non digit or EOF */ , `8 _. Z* P# m: [
while((ch = getche()) != EOF &amp;&amp; isdigit(ch)) 2 ?. [4 B1 }7 k$ F6 Q5 b! w
i = 10 * i + ch - 48; /* convert ASCII into int value */ </FONT></P>5 E3 z; q( x0 b$ N. z
<><FONT color=#0000ff>/* if non digit char was read, push it back into input buffer */ 2 @4 B9 o! I; ]2 _) j
if (ch != EOF)
* d& f0 ^8 V0 N- C& l7 @ungetch(ch); </FONT></P>
/ i( N& G- y/ F$ E% }- K- N/ S0 T<><FONT color=#0000ff>printf("\n\ni = %d, next char in buffer = %c\n", i, getch()); ! o1 e7 D0 J( z& h# R
return 0; # h; a3 R; X5 L# P5 M
} ' A( J) d" x/ A/ a& v
) V7 E8 D, S# v2 {; k* X
* P: X2 r# o2 @* X1 F) x7 [
</FONT></P>
; d$ O$ W( n/ p' d+ [( _6 d<><FONT color=#ff0000>函数名: unixtodos </FONT>6 l. w: r, {! |4 e$ @6 q
功 能: 把日期和时间转换成DOS格式 6 p4 [3 Y& h2 x8 y  v* w
用 法: void unixtodos(long utime, struct date *dateptr,
' o4 Y* u$ D! W4 n% ystruct time *timeptr);
* P$ g+ A* J- A2 [程序例: </P>
* B) G) A0 b5 O* l+ v<><FONT color=#0000ff>#include <STDIO.H>" t, T6 ]6 G! a6 p- E' f6 Y0 d
#include <DOS.H></FONT></P>' G& h! V( h) ^
<><FONT color=#0000ff>char *month[] = {"---", "Jan", "Feb", "Mar", "Apr", "May", "Jun",
( N, ?8 i5 V- w( O/ K1 Z"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; </FONT></P>
/ K- |: h4 e5 a" b5 S1 Z) Y0 @<><FONT color=#0000ff>#define SECONDS_PER_DAY 86400L /* the number of seconds in one day */ </FONT></P>2 k  x1 }, I3 j3 O! ]
<><FONT color=#0000ff>struct date dt;
/ d0 O8 k' ^! l+ E5 N8 ~* Rstruct time tm; </FONT></P>
0 B' m9 `8 r* U; S  J3 Y<><FONT color=#0000ff>int main(void)
" T4 |& c7 r* `5 u9 Q" u6 T6 ^{
9 D$ L5 n7 Z2 S$ sunsigned long val; </FONT></P>
" _, h0 n" c% g$ n<><FONT color=#0000ff>/* get today's date and time */
; P- _. ?3 @: X# U2 Ngetdate(&amp;dt); # d/ G, Z; K5 w6 i" ]+ w
gettime(&amp;tm);
0 A0 q1 ^5 \4 R( b( r, s% S, Rprintf("today is %d %s %d\n", dt.da_day, month[dt.da_mon], dt.da_year); </FONT></P>) x2 O; @6 H% i, t
<><FONT color=#0000ff>/* convert date and time to unix format (number of seconds since Jan 1, 1970 */ 1 d: U* T3 `# Q% Q) L, l7 s& {3 a
val = dostounix(&amp;dt, &amp;tm);
  t+ M! F6 |, t/ f/* subtract 42 days worth of seconds */ # k" ^$ `, W3 X1 E7 z# w5 J
val -= (SECONDS_PER_DAY * 42); </FONT></P>
* F$ ~. Y* a. I0 A, ]' c* f/ q! D- d<><FONT color=#0000ff>/* convert back to dos time and date */ 9 }2 b" X3 O  B8 _2 r
unixtodos(val, &amp;dt, &amp;tm); / u3 s- g6 h+ K4 Y2 R! T, ~
printf("42 days ago it was %d %s %d\n",
' o! ~  |7 j. n, a% K2 x$ p: Odt.da_day, month[dt.da_mon], dt.da_year);
, G" a7 H2 {3 c* r* }return 0; 5 C8 V# Q1 q! P% e4 _
}
8 V3 D  q; L9 N! q* s2 ~, n% o4 d
. _+ z0 q5 S5 J* m
- S* Y+ P/ j* R8 U* {</FONT></P>
5 n7 G* F! y, {<><FONT color=#ff0000>函数名: unlink </FONT>) B5 q8 x$ z% T; v2 W; L
功 能: 删掉一个文件
9 k0 o, L$ C) B9 d用 法: int unlink(char *filename); / `* }2 e* g; C  X& F
程序例: </P>+ z' Y5 N! [4 X& Z2 @. v% J/ Q) O
<><FONT color=#0000ff>#include <STDIO.H>
" T' d) L- a+ V0 N/ z, h) U' w3 R/ L#include <IO.H></FONT></P>
$ }# w# X, G# j9 J/ L5 \6 y<P><FONT color=#0000ff>int main(void)
+ y& \  s2 v, _* Y( f" g{
/ v7 N6 {1 Q/ B4 |3 A: r; O6 sFILE *fp = fopen("junk.jnk","w"); $ Y" d7 f% ?) V! k/ h& I
int status; </FONT></P>8 \0 r% L0 G% c- W6 E3 N
<P><FONT color=#0000ff>fprintf(fp,"junk"); </FONT></P>
( P* G0 o9 z- G: X: R<P><FONT color=#0000ff>status = access("junk.jnk",0);
' }5 T3 K8 i6 v+ y# z; zif (status == 0) 2 i# k) O$ y( }) K, T1 @0 a
printf("File exists\n"); * m; z- P: A2 t
else * e4 H0 F, `$ w
printf("File doesn't exist\n"); </FONT></P>
' L% n- p7 T% d8 W<P><FONT color=#0000ff>fclose(fp);
9 Q' q. o1 o3 ~4 [& g" k8 \7 funlink("junk.jnk"); ) F3 a* h* @* r& a- g( [4 ]
status = access("junk.jnk",0); : ^& i2 E+ W6 W! V
if (status == 0)
# ]- _, C" G& T6 d5 U4 J# pprintf("File exists\n");
& l  f/ X$ z. S4 V" u) k2 nelse
2 L0 _* s' W7 T& Oprintf("File doesn't exist\n"); $ Q; K  @3 G& h( {' F
</FONT></P>
1 \' Q/ u, K% @" M9 `<P><FONT color=#0000ff>return 0; : B- ]! L. x) F
}
. w9 E( v, ~1 K5 A" B
/ B- P- _9 o* {& y9 W</FONT>+ c* x. o" G" D, b; A2 i
</P>
; E' C0 H1 C. n" q) b5 o<P><FONT color=#0000ff>函数名: unlock </FONT>- y2 o( ]2 z: f/ X
功 能: 解除文件共享锁
; n7 b$ b3 ]9 n! r, ?0 P9 ?+ N用 法: int unlock(int handle, long offset, long length); 0 M3 r% _2 m% u, D
程序例: </P>
. y6 |0 d: r2 \( I, v' S<P><FONT color=#0000ff>#include <IO.H>! _* r+ ^/ `& w0 F- W
#include <FCNTL.H>8 u8 E1 y# U4 B' H2 D
#include <SYS\STAT.H>% [) N1 R2 ~% {' g# V( G5 }4 q. t
#include <PROCESS.H>
& ]8 v' O, I9 Z& y- s) ]) |/ W#include <SHARE.H>
& k# e1 U  `8 F7 N  t) A" G2 u#include <STDIO.H></FONT></P>% D% B& n$ X7 q8 P' g
<P><FONT color=#0000ff>int main(void) , H* R4 v' m" H; }8 P
{
1 P. _( R& S- A% _int handle, status;
$ u5 I& e: C, ]+ O7 F7 |* P- @' Rlong length; </FONT></P>+ F, d2 y, n2 B) w$ `4 _0 o& H) V7 a8 G
<P><FONT color=#0000ff>handle = sopen("c:\\autoexec.bat",O_RDONLY,SH_DENYNO,S_IREAD); </FONT></P>
- [, ]% l' g8 g! {1 |, G9 m5 c+ |<P><FONT color=#0000ff>if (handle &lt; 0) % C9 _8 U. k* M6 N7 I/ r
{ , b3 I, y* k% E+ q  F
printf("sopen failed\n"); : ~- q) S/ A) e" K( c- c, X0 Y
exit(1); * R" T0 Q. t7 k9 i$ {4 S
} </FONT></P>
2 |# F, D/ v; u2 b<P><FONT color=#0000ff>length = filelength(handle); 6 N8 m2 r, M# z& s5 I
status = lock(handle,0L,length/2); </FONT></P>: t( r% @9 v! F$ p, q
<P><FONT color=#0000ff>if (status == 0) ! X2 D0 D: `3 F, p: v
printf("lock succeeded\n");
0 {6 e, ^- @$ \) }else
& @* v4 R0 h: e! j; n  ?printf("lock failed\n"); </FONT></P># w% K0 t9 {+ A" t2 w: G: A
<P><FONT color=#0000ff>status = unlock(handle,0L,length/2); </FONT></P>
3 @# M  G$ a1 p5 D<P><FONT color=#0000ff>if (status == 0) " s, z/ J& b- P5 J
printf("unlock succeeded\n");
5 k  P3 R) P0 kelse ! [9 m+ A6 C* L
printf("unlock failed\n"); </FONT></P>9 u. h6 w5 t( Z- ]' h8 Q* N
<P><FONT color=#0000ff>close(handle); 6 |' f, B! ?. X1 k6 |; d- r
return 0; ) L. r& z3 K2 q6 @
} </FONT></P>




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