王朝网络
分享
 
 
 

C语言库函数(I类字母)

王朝c/c++·作者佚名  2008-06-01
宽屏版  字体: |||超大  

函数名: imagesize

功 能: 返回保存位图像所需的字节数

用 法: unsigned far imagesize(int left, int top, int right, int bottom);

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#define ARROW_SIZE 10

void draw_arrow(int x, int y);

int main(void)

{

/* request autodetection */

int gdriver = DETECT, gmode, errorcode;

void *arrow;

int x, y, maxx;

unsigned int size;

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, "");

/* read result of initialization */

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1); /* terminate with an error code */

}

maxx = getmaxx();

x = 0;

y = getmaxy() / 2;

/* draw the image to be grabbed */

draw_arrow(x, y);

/* calculate the size of the image */

size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE);

/* allocate memory to hold the image */

arrow = malloc(size);

/* grab the image */

getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow);

/* repeat until a key is pressed */

while (!kbhit())

{

/* erase old image */

putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);

x += ARROW_SIZE;

if (x >= maxx)

x = 0;

/* plot new image */

putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);

}

/* clean up */

free(arrow);

closegraph();

return 0;

}

void draw_arrow(int x, int y)

{

/* draw an arrow on the screen */

moveto(x, y);

linerel(4*ARROW_SIZE, 0);

linerel(-2*ARROW_SIZE, -1*ARROW_SIZE);

linerel(0, 2*ARROW_SIZE);

linerel(2*ARROW_SIZE, -1*ARROW_SIZE);

}

函数名: initgraph

功 能: 初始化图形系统

用 法: void far initgraph(int far *graphdriver, int far *graphmode,

char far *pathtodriver);

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */

initgraph(&gdriver, &gmode, "");

/* read result of initialization */

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1); /* return with error code */

}

/* draw a line */

line(0, 0, getmaxx(), getmaxy());

/* clean up */

getch();

closegraph();

return 0;

}

函数名: inport

功 能: 从硬件端口中输入

用 法: int inp(int protid);

程序例:

#include <stdio.h>

#include <dos.h>

int main(void)

{

int result;

int port = 0; /* serial port 0 */

result = inport(port);

printf("Word read from port %d = 0x%X\n", port, result);

return 0;

}

函数名: insline

功 能: 在文本窗口中插入一个空行

用 法: void insline(void);

程序例:

#include <conio.h>

int main(void)

{

clrscr();

cprintf("INSLINE inserts an empty line in the text window\r\n");

cprintf("at the cursor position using the current text\r\n");

cprintf("background color. All lines below the empty one\r\n");

cprintf("move down one line and the bottom line scrolls\r\n");

cprintf("off the bottom of the window.\r\n");

cprintf("\r\nPress any key to continue:");

gotoxy(1, 3);

getch();

insline();

getch();

return 0;

}

函数名: installuserdriver

功 能: 安装设备驱动程序到BGI设备驱动程序表中

用 法: int far installuserdriver(char far *name, int (*detect)(void));

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

/* function prototypes */

int huge detectEGA(void);

void checkerrors(void);

int main(void)

{

int gdriver, gmode;

/* install a user written device driver */

gdriver = installuserdriver("EGA", detectEGA);

/* must force use of detection routine */

gdriver = DETECT;

/* check for any installation errors */

checkerrors();

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, "");

/* check for any initialization errors */

checkerrors();

/* draw a line */

line(0, 0, getmaxx(), getmaxy());

/* clean up */

getch();

closegraph();

return 0;

}

/* detects EGA or VGA cards */

int huge detectEGA(void)

{

int driver, mode, sugmode = 0;

detectgraph(&driver, &mode);

if ((driver == EGA) (driver == VGA))

/* return suggested video mode number */

return sugmode;

else

/* return an error code */

return grError;

}

/* check for and report any graphics errors */

void checkerrors(void)

{

int errorcode;

/* read result of last graphics operation */

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}

}

函数名: installuserfont

功 能: 安装未嵌入BGI系统的字体文件(CHR)

用 法: int far installuserfont(char far *name);

程序例:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

/* function prototype */

void checkerrors(void);

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode;

int userfont;

int midx, midy;

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, "");

midx = getmaxx() / 2;

midy = getmaxy() / 2;

/* check for any initialization errors */

checkerrors();

/* install a user defined font file */

userfont = installuserfont("USER.CHR");

/* check for any installation errors */

checkerrors();

/* select the user font */

settextstyle(userfont, HORIZ_DIR, 4);

/* output some text */

outtextxy(midx, midy, "Testing!");

/* clean up */

getch();

closegraph();

return 0;

}

/* check for and report any graphics errors */

void checkerrors(void)

{

int errorcode;

/* read result of last graphics operation */

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}

}

函数名: int86

功 能: 通用8086软中断接口

用 法: int int86(int intr_num, union REGS *inregs, union REGS *outregs);

程序例:

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#define VIDEO 0x10

void movetoxy(int x, int y)

{

union REGS regs;

regs.h.ah = 2; /* set cursor postion */

regs.h.dh = y;

regs.h.dl = x;

regs.h.bh = 0; /* video page 0 */

int86(VIDEO, ®s, ®s);

}

int main(void)

{

clrscr();

movetoxy(35, 10);

printf("Hello\n");

return 0;

}

函数名: int86x

功 能: 通用8086软中断接口

用 法: int int86x(int intr_num, union REGS *insegs, union REGS *outregs,

strUCt SREGS *segregs);

程序例:

#include <dos.h>

#include <process.h>

#include <stdio.h>

int main(void)

{

char filename[80];

union REGS inregs, outregs;

struct SREGS segregs;

printf("Enter filename: ");

gets(filename);

inregs.h.ah = 0x43;

inregs.h.al = 0x21;

inregs.x.dx = FP_OFF(filename);

segregs.ds = FP_SEG(filename);

int86x(0x21, &inregs, &outregs, &segregs);

printf("File attribute: %X\n", outregs.x.cx);

return 0;

}

函数名: intdos

功 能: 通用DOS接口

用 法: int intdos(union REGS *inregs, union REGS *outregs);

程序例:

#include <stdio.h>

#include <dos.h>

/* deletes file name; returns 0 on success, nonzero on failure */

int delete_file(char near *filename)

{

union REGS regs;

int ret;

regs.h.ah = 0x41; /* delete file */

regs.x.dx = (unsigned) filename;

ret = intdos(®s, ®s);

/* if carry flag is set, there was an error */

return(regs.x.cflag ? ret : 0);

}

int main(void)

{

int err;

err = delete_file("NOTEXIST.$$$");

if (!err)

printf("Able to delete NOTEXIST.$$$\n");

else

printf("Not Able to delete NOTEXIST.$$$\n");

return 0;

}

函数名: intdosx

功 能: 通用DOS中断接口

用 法: int intdosx(union REGS *inregs, union REGS *outregs,

struct SREGS *segregs);

程序例:

#include <stdio.h>

#include <dos.h>

/* deletes file name; returns 0 on success, nonzero on failure */

int delete_file(char far *filename)

{

union REGS regs; struct SREGS sregs;

int ret;

regs.h.ah = 0x41; /* delete file */

regs.x.dx = FP_OFF(filename);

sregs.ds = FP_SEG(filename);

ret = intdosx(®s, ®s, &sregs);

/* if carry flag is set, there was an error */

return(regs.x.cflag ? ret : 0);

}

int main(void)

{

int err;

err = delete_file("NOTEXIST.$$$");

if (!err)

printf("Able to delete NOTEXIST.$$$\n");

else

printf("Not Able to delete NOTEXIST.$$$\n");

return 0;

}

函数名: intr

功 能: 改变软中断接口

用 法: void intr(int intr_num, struct REGPACK *preg);

程序例:

#include <stdio.h>

#include <string.h>

#include <dir.h>

#include <dos.h>

#define CF 1 /* Carry flag */

int main(void)

{

char Directory[80];

struct REGPACK reg;

printf("Enter directory to change to: ");

gets(directory);

reg.r_ax = 0x3B << 8; /* shift 3Bh into AH */

reg.r_dx = FP_OFF(directory);

reg.r_ds = FP_SEG(directory);

intr(0x21, ®);

if (reg.r_flags & CF)

printf("Directory change failed\n");

getcwd(directory, 80);

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

return 0;

}

函数名: ioctl

功 能: 控制I/O设备

用 法: int ioctl(int handle, int cmd[,int *argdx, int argcx]);

程序例:

#include <stdio.h>

#include <dir.h>

#include <io.h>

int main(void)

{

int stat;

/* use func 8 to determine if the default drive is removable */

stat = ioctl(0, 8, 0, 0);

if (!stat)

printf("Drive %c is removable.\n", getdisk() + 'A');

else

printf("Drive %c is not removable.\n", getdisk() + 'A');

return 0;

}

函数名: isatty

功 能: 检查设备类型

用 法: int isatty(int handle);

程序例:

#include <stdio.h>

#include <io.h>

int main(void)

{

int handle;

handle = fileno(stdprn);

if (isatty(handle))

printf("Handle %d is a device type\n", handle);

else

printf("Handle %d isn't a device type\n", handle);

return 0;

}

函数名: itoa

功 能: 把一整数转换为字符串

用 法: char *itoa(int value, char *string, int radix);

程序例:

#include <stdlib.h>

#include <stdio.h>

int main(void)

{

int number = 12345;

char string[25];

itoa(number, string, 10);

printf("integer = %d string = %s\n", number, string);

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有