C语言库函数大全及应用实例四
couble fmod (double x, double y);<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
返回x對y的模,即x/y的余數。
?
void fnmerge(char *path,const char *drive,const char *dir,const char *name,const char *ext);
由給定的盤區路徑文件名擴展名等組成部分建立path。
如果drive給出X:,dir給出\DIR\SUBDIR\,name給出NAME,和.ext給出.EXT,根據給定的組成部分,可建立一個完整的盤區路徑文件名path為:
X:\DIR\CUBDIR\NAME.EXT
?
int fnsplit(const char *path,char *drive,char *cir,char *name,char *ext);
可把由path給出的盤區路徑文件名擴展名分解成為各自的組成部分.返回一整型數.
?
FILE*fopen (const char *filemane,const char *mode);
打開文件filemane返回相聯系的流;出錯返回NULL。
mode字符串的可取值有:r,打開用于讀;w,打開用于寫;a,打開用于在原有內容之后寫;r+,打開已存在的文件用于更新(讀和寫);w+創建新文件用于更新;a+,打開用于在原有內容之后更新,若文件不存在就創建。
?
unsigned FP_OFF(void far *farptr);
返回遠指針farptr的地址偏移量。
?
int fprintf(FILE *stream,const char *format[,argument,...]);
照原樣抄寫格式串format的內容到流stream中,每遇到一個%,就按規定的格式,依次輸出一個表達式argument的值到流stream中,返回寫的字符個數。出錯時返回EOF。
?
FILE *stream;
void main( void )
{
long l;
float fp;
char s[81];
char c;
stream = fopen( "fscanf.txt", "w+" );
if( stream == NULL )
printf( "The file fscanf.out was not opened\n" );
else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, 'x' );
/* Set pointer to beginning of file: */
fseek( stream, 0L, SEEK_SET );
/* Read data back from file: */
fscanf( stream, "%s", s );
fscanf( stream, "%ld", &l );
fscanf( stream, "%f",
fscanf( stream, "%c", &c );/* Output data read: */
printf( "%s\n", s );
printf( "%ld\n", l );
printf( "%f\n", fp );
printf( "%c\n", c );
fclose( stream ); }
}
?
int fputc(int c,FILE *stream);
寫一個字符到流中。
成功時返回所寫的字符,失敗或出錯時返回EOF。
?
int fputchar(int c);
送一個字符到屏幕。
等價于fputc(c,stdout);成功時返回所寫的字符,失敗或出錯時返回EOF。
?
int fputs(const char *s,FILE *stream);
把s所指的以空字符終結的字符串送入流中,不加換行符'\n',不拷貝串結束符'\0'。
成功時返回最后的字符,出錯時返回EOF。
size_t fread(void *ptr,size_t size,size_t n,FILE *stream);
從所給的輸入流stream中讀取的n項數據,每一項數據長度為size字節,到由ptr所指的塊中。
成功時返回所讀的數據項數(不是字節數);遇到文件結束或出錯時可能返回0。
void free(void *block);
釋放先前分配的首地址為block的內存塊。
int freemem(unsigned segx);
釋放先前由allocmem分配的段地址為segx的內存塊。
?
FILE *freopen(const char *filename,const char *mode,FILE *stream);
用filename所指定的文件代替打開的流stream所指定的文件。返回stream,出錯時返回NULL。
?
double frexp(double x int *exponent);
將x分解成尾數合指數。
將給出的雙精度數x分解成為在0.5和1之間尾數m和整形的指數n,使原來的x=m*(2的n次方),將整形指數n存入exponent所指的地址中,返回尾數m。
?
int fscan(FILE *stream,char *format,address,...);
fscanf掃描輸入字段,從流stream讀入,每讀入一個字段,就依次按照由format所指的格式串中取一個從%開始的格式進行格式化之后存入對應的一個地址address中。
返回成功地掃描,轉換和存貯輸入字段的個數,遇文件結束返回EOF。
?
FILE *stream;
void main( void )
{
long l;
float fp;
char s[81];
char c;
stream = fopen( "fscanf.txt", "w+" );
if( stream == NULL )
printf( "The file fscanf.out was not opened\n" );
else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, 'x' );
/* Set pointer to beginning of file: */
fseek( stream, 0L, SEEK_SET );
/* Read data back from file: */
fscanf( stream, "%s", s );
fscanf( stream, "%ld", &l );
fscanf( stream, "%f",
fscanf( stream, "%c", &c );/* Output data read: */
printf( "%s\n", s );
printf( "%ld\n", l );
printf( "%f\n", fp );
printf( "%c\n", c );
fclose( stream ); }
}
?
int fseek(FILE *stream,long offset,int whence);
在流上重新定位文件結構的位置。fseek設置與流stream相聯系的文件指針到新的位置,新位置與whence給定的文件位置的距離為offset字節。
whence的取值必須是0,1或2中的一個,分別代表在stdio.h中定義的三個符號常量:
0是SEEK_SET,是文件開始位置;
1是SEEK_CUR,是當前的指針位置;
2時SEEK_END,是文件末尾。
調用了fseek之后,在更新的文件位置上,下一個操作可以是輸入;也可以是輸出。成功地移動了指針時,fseek返回0;出錯或失敗時返回非0值。
例:
#i nclude
FILE *stream;
void main( void )
{
long l;
float fp;
char s[81];
char c;
stream = fopen( "fscanf.txt", "w+" );
if( stream == NULL )
printf( "The file fscanf.out was not opened\n" );
else {fprintf( stream, "%s %ld %f%c", "a-string",65000, 3.14159, 'x' );
/* Set pointer to beginning of file: */
fseek( stream, 0L, SEEK_SET );
/* Read data back from file: */
fscanf( stream, "%s", s );
fscanf( stream, "%ld", &l );
fscanf( stream, "%f",
fscanf( stream, "%c", &c );/* Output data read: */
printf( "%s\n", s );
printf( "%ld\n", l );
printf( "%f\n", fp );
printf( "%c\n", c );
fclose( stream ); }
}
?
int fsetpos(FILE *stream,const fpos_t *pos);
fsetpos把與stream相聯系的文件指針置于新的位置。這個新的位置是先前對此流調用fgetpos所得的值。
fsetpos清除stream所指文件的文件結束標志,并消除對該文件的所有ungetc操作。在調用fsetpos之后,文件的下一操作可以是輸入或輸出。
調用fsetpos成功時返回0;若失敗,返回非0值。
?
int fstat(int handle,struct stat *statbuf);
把與handle相聯系的打開文件或目錄的信息存入到statbuf所指的定義在sys\stat.h中的stat結構中。成功時返回0;出錯時返回-1。
?
long int ftell(FILE *stream);
返回流stream中當前文件指針位置。偏移量是文件開始算起的字節數。出錯時返回-1L,是長整數的-1值。
?
void ftime(struct timeb *buf);
把當前時間存入到在sys\timeb.h中定義的timeb結構中。
?
size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream);
fwrite從指針ptr開始把n個數據項添加到給定輸出流stream,每個數據項的長度為size個字節。
成功是返回確切的數據項數(不是字節數);出錯時返回短(short)計數值。可能是0。
函數名: gcvt
功 能: 把浮點數轉換成字符串
用 法: char *gcvt(double value, int ndigit, char *buf);
程序例:
#i nclude
#i nclude
int main(void)
{
char str[25];
double num;
int sig = 5; /* significant digits */
/* a regular number */
num = 9.876;
gcvt(num, sig, str);
printf("string = %s\n", str);
/* a negative number */
num = -123.4567;
gcvt(num, sig, str);
printf("string = %s\n", str);
/* scientific notation */
num = 0.678e5;
gcvt(num, sig, str);
printf("string = %s\n", str);
return(0);
}
函數名: geninterrupt
功 能: 產生一個軟中斷
用 法: void geninterrupt(int intr_num);
程序例:
#i nclude
#i nclude
/* function prototype */
void writechar(char ch);
int main(void)
{
clrscr();
gotoxy(80,25);
writechar('*');
getch();
return 0;
}
/*
outputs a character at the current cursor
position using the video BIOS to avoid the
scrolling of the screen when writing to
location (80,25).
*/
void writechar(char ch)
{
struct text_info ti;
/* grab current text settings */
gettextinfo(&ti);
/* interrupt 0x10 sub-function 9 */
_AH = 9;
/* character to be output */
_AL = ch;
_BH = 0; /* video page */
_BL = ti.attribute; /* video attribute */
_CX = 1; /* repetition factor */
geninterrupt(0x10); /* output the char */
}
函數名: getarccoords
功 能: 取得最后一次調用arc的坐標
用 法: void far getarccoords(struct arccoordstype far *arccoords);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
struct arccoordstype arcinfo;
int midx, midy;
int stangle = 45, endangle = 270;
char sstr[80], estr[80];
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
/* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
/* terminate with an error code */
exit(1);
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
/* draw arc and get coordinates */
setcolor(getmaxcolor());
arc(midx, midy, stangle, endangle, 100);
getarccoords(&arcinfo);
/* convert arc information into strings */
sprintf(sstr, "*- (%d, %d)",
arcinfo.xstart, arcinfo.ystart);
sprintf(estr, "*- (%d, %d)",
arcinfo.xend, arcinfo.yend);
/* output the arc information */
outtextxy(arcinfo.xstart,
arcinfo.ystart, sstr);
outtextxy(arcinfo.xend,
arcinfo.yend, estr);
/* clean up */
getch();
closegraph();
return 0;
}
函數名: getaspectratio
功 能: 返回當前圖形模式的縱橫比
用 法: void far getaspectratio(int far *xasp, int far *yasp);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int xasp, yasp, midx, midy;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
/* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
/* terminate with an error code */
exit(1);
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());
/* get current aspect ratio settings */
getaspectratio(&xasp, &yasp);
/* draw normal circle */
circle(midx, midy, 100);
getch();
/* draw wide circle */
cleardevice();
setaspectratio(xasp/2, yasp);
circle(midx, midy, 100);
getch();
/* draw narrow circle */
cleardevice();
setaspectratio(xasp, yasp/2);
circle(midx, midy, 100);
/* clean up */
getch();
closegraph();
return 0;
}
函數名: getbkcolor
功 能: 返回當前背景顏色
用 法: int far getbkcolor(void);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude
#i nclude
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int bkcolor, midx, midy;
char bkname[35];
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
/* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
/* terminate with an error code */
exit(1);
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());
/* for centering text on the display */
settextjustify(CENTER_TEXT, CENTER_TEXT);
/* get the current background color */
bkcolor = getbkcolor();
/* convert color value into a string */
itoa(bkcolor, bkname, 10);
strcat(bkname,
" is the current background color.");
/* display a message */
outtextxy(midx, midy, bkname);
/* clean up */
getch();
closegraph();
return 0;
}
函數名: getc
功 能: 從流中取字符
用 法: int getc(FILE *stream);
程序例:
#i nclude
int main(void)
{
char ch;
printf("Input a character:");
/* read a character from the
standard input stream */
ch = getc(stdin);
printf("The character input was: '%c'\n",
ch);
return 0;
}
函數名: getcbrk
功 能: 獲取Control_break設置
用 法: int getcbrk(void);
程序例:
#i nclude
#i nclude
int main(void)
{
if (getcbrk())
printf("Cntrl-brk flag is on\n");
else
printf("Cntrl-brk flag is off\n");
return 0;
}
函數名: getch
功 能: 從控制臺無回顯地取一個字符
用 法: int getch(void);
程序例:
#i nclude
#i nclude
int main(void)
{
char ch;
printf("Input a character:");
ch = getche();
printf("\nYou input a '%c'\n", ch);
return 0;
}
函數名: getchar
功 能: 從stdin流中讀字符
用 法: int getchar(void);
程序例:
#i nclude
int main(void)
{
int c;
/* Note that getchar reads from stdin and
is line buffered; this means it will
not return until you press ENTER. */
while ((c = getchar()) != '\n')
printf("%c", c);
return 0;
}
函數名: getche
功 能: 從控制臺取字符(帶回顯)
用 法: int getche(void);
程序例:
#i nclude
#i nclude
int main(void)
{
char ch;
printf("Input a character:");
ch = getche();
printf("\nYou input a '%c'\n", ch);
return 0;
}
函數名: getcolor
功 能: 返回當前畫線顏色
用 法: int far getcolor(void);
程序例:
#i nclude
#i nclude
#i nclude
#i nclude
#i nclude
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int color, midx, midy;
char colname[35];
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
/* an error occurred */
if (errorcode != grOk)
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
/* terminate with an error code */
exit(1);
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());
/* for centering text on the display */
settextjustify(CENTER_TEXT, CENTER_TEXT);
/* get the current drawing color */
color = getcolor();
/* convert color value into a string */
itoa(color, colname, 10);
strcat(colname,
" is the current drawing color.");
/* display a message */
outtextxy(midx, midy, colname);
/* clean up */
getch();
closegraph();
return 0;
}
轉載于:https://www.cnblogs.com/jimeper/archive/2005/12/26/304913.html
總結
以上是生活随笔為你收集整理的C语言库函数大全及应用实例四的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队开发框架(Developement
- 下一篇: Visual Editor插件下载、安装