C语言库函数(G类字母)1

/ns/wz/comp/data/20010427040826.htm

C语言库函数(G类字母)1


函数名: gcvt
功 能: 把浮点数转换成字符串
用 法: char *gcvt(double value, int ndigit, char *buf);
程序例:
#include <stdlib.h>
#include <stdio.h>

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);
程序例:

#include <conio.h>
#include <dos.h>

/* 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);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

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);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

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);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>

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);
程序例:

#include <stdio.h>

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);
程序例:

#include <stdio.h>
#include <dos.h>

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);
程序例:

#include <stdio.h>
#include <conio.h>

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);
程序例:

#include <stdio.h>

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);
程序例:

#include <stdio.h>
#include <conio.h>

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);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>

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



函数名: getcurdir
功 能: 取指定驱动器的当前目录
用 法: int getcurdir(int drive, char *direc);
程序例:

#include <dir.h>
#include <stdio.h>
#include <string.h>

char *current_directory(char *path)
{
strcpy(path, "X:\\"); /* fill string with form of response: X:\ */
path[0] = 'A' + getdisk(); /* replace X with current drive letter */
getcurdir(0, path+3); /* fill rest of string with current directory */
return(path);
}

int main(void)
{
char curdir[MAXPATH];

current_directory(curdir);
printf("The current directory is %s\n", curdir);

return 0;
}



函数名: getcwd
功 能: 取当前工作目录
用 法: char *getcwd(char *buf, int n);
程序例:

#include <stdio.h>
#include <dir.h>

int main(void)
{
char buffer[MAXPATH];

getcwd(buffer, MAXPATH);
printf("The current directory is: %s\n", buffer);
return 0;
}





中华技术网整理发布 http://www.asfocus.com http://www.netqu.com