setaspectratio函数_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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值