zoukankan      html  css  js  c++  java
  • C语言库函数大全及应用实例四

                                       [编程资料]C语言库函数大全及应用实例四

    couble fmod (double x, double y);

    返回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;
    }

    人生有三宝:终身运动,终身学习,终身反醒.吸收新知,提高效率,懂得相处,成就自己,也成就他人,创造最高价值。
  • 相关阅读:
    最小生成树模板(Prim+Kruskal)
    最短路模板(Dij+Floyd)
    LeetCode双周赛#33 题解
    CSS3 学习笔记(中)
    拓扑排序小测试
    串和矩阵压缩的小测试
    树的相关小测试 题解
    Leetcode 周赛#202 题解
    HTML5 学习笔记
    Leetcode 双周赛#32 题解
  • 原文地址:https://www.cnblogs.com/jimeper/p/304913.html
Copyright © 2011-2022 走看看