⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c函数之i.txt

📁 C常用函数 多了解一些有好处的
💻 TXT
字号:
  函数名: 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, &regs, &regs); 
} 

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(&regs, &regs); 

/* 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(&regs, &regs, &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, &reg); 
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; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -