C语言I.docx

上传人:b****6 文档编号:7877751 上传时间:2023-01-26 格式:DOCX 页数:12 大小:19.39KB
下载 相关 举报
C语言I.docx_第1页
第1页 / 共12页
C语言I.docx_第2页
第2页 / 共12页
C语言I.docx_第3页
第3页 / 共12页
C语言I.docx_第4页
第4页 / 共12页
C语言I.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言I.docx

《C语言I.docx》由会员分享,可在线阅读,更多相关《C语言I.docx(12页珍藏版)》请在冰豆网上搜索。

C语言I.docx

C语言I

返回>>C语言函数大全

函数名:

imagesize

功 能:

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

用 法:

unsignedfarimagesize(intleft,inttop,intright,intbottom);

程序例:

#include

#include

#include

#include

#defineARROW_SIZE10

voiddraw_arrow(intx,inty);

intmain(void)

{

  /*requestautodetection*/

  intgdriver=DETECT,gmode,errorcode;

  void*arrow;

  intx,y,maxx;

  unsignedintsize;

  /*initializegraphicsandlocalvariables*/

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

  /*readresultofinitialization*/

  errorcode=graphresult();

  if(errorcode!

=grOk) /*anerroroccurred*/

  {

     printf("Graphicserror:

%s\n",grapherrormsg(errorcode));

     printf("Pressanykeytohalt:

");

     getch();

     exit

(1);/*terminatewithanerrorcode*/

  }

  maxx=getmaxx();

  x=0;

  y=getmaxy()/2;

  /*drawtheimagetobegrabbed*/

  draw_arrow(x,y);

  /*calculatethesizeoftheimage*/

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

  /*allocatememorytoholdtheimage*/

  arrow=malloc(size);

  /*grabtheimage*/

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

  /*repeatuntilakeyispressed*/

  while(!

kbhit())

  {

     /*eraseoldimage*/

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

     x+=ARROW_SIZE;

     if(x>=maxx)

         x=0;

     /*plotnewimage*/

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

  }

  /*cleanup*/

  free(arrow);

  closegraph();

  return0;

}

voiddraw_arrow(intx,inty)

{

  /*drawanarrowonthescreen*/

  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

功 能:

初始化图形系统

用 法:

voidfarinitgraph(intfar*graphdriver,intfar*graphmode,

   charfar*pathtodriver);

程序例:

#include

#include

#include

#include

intmain(void)

{

  /*requestautodetection*/

  intgdriver=DETECT,gmode,errorcode;

  /*initializegraphicsmode*/

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

  /*readresultofinitialization*/

  errorcode=graphresult();

  if(errorcode!

=grOk) /*anerroroccurred*/

  {

     printf("Graphicserror:

%s\n",grapherrormsg(errorcode));

     printf("Pressanykeytohalt:

");

     getch();

     exit

(1);            /*returnwitherrorcode*/

  }

  /*drawaline*/

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

  /*cleanup*/

  getch();

  closegraph();

  return0;

}

 

 

函数名:

inport

功 能:

从硬件端口中输入

用 法:

intinp(intprotid);

程序例:

#include

#include

intmain(void)

{

  intresult;

  intport=0; /*serialport0*/

  result=inport(port);

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

  return0;

}

 

 

函数名:

insline

功 能:

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

用 法:

voidinsline(void);

程序例:

#include

intmain(void)

{

  clrscr();

  cprintf("INSLINEinsertsanemptylineinthetextwindow\r\n");

  cprintf("atthecursorpositionusingthecurrenttext\r\n");

  cprintf("backgroundcolor. Alllinesbelowtheemptyone\r\n");

  cprintf("movedownonelineandthebottomlinescrolls\r\n");

  cprintf("offthebottomofthewindow.\r\n");

  cprintf("\r\nPressanykeytocontinue:

");

  gotoxy(1,3);

  getch();

  insline();

  getch();

  return0;

}

 

 

 

函数名:

installuserdriver

功 能:

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

用 法:

intfarinstalluserdriver(charfar*name,int(*detect)(void));

程序例:

#include

#include

#include

#include

/*functionprototypes*/

inthugedetectEGA(void);

voidcheckerrors(void);

intmain(void)

{

  intgdriver,gmode;

  /*installauserwrittendevicedriver*/

  gdriver=installuserdriver("EGA",detectEGA);

  /*mustforceuseofdetectionroutine*/

  gdriver=DETECT;

  /*checkforanyinstallationerrors*/

  checkerrors();

  /*initializegraphicsandlocalvariables*/

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

  /*checkforanyinitializationerrors*/

  checkerrors();

  /*drawaline*/

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

  /*cleanup*/

  getch();

  closegraph();

  return0;

}

/*detectsEGAorVGAcards*/

inthugedetectEGA(void)

{

  intdriver,mode,sugmode=0;

  detectgraph(&driver,&mode);

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

     /*returnsuggestedvideomodenumber*/

     returnsugmode;

  else

     /*returnanerrorcode*/

     returngrError;

}

/*checkforandreportanygraphicserrors*/

voidcheckerrors(void)

{

  interrorcode;

  /*readresultoflastgraphicsoperation*/

  errorcode=graphresult();

  if(errorcode!

=grOk)

  {

     printf("Graphicserror:

%s\n",grapherrormsg(errorcode));

     printf("Pressanykeytohalt:

");

     getch();

     exit

(1);

  }

}

函数名:

installuserfont

功 能:

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

用 法:

intfarinstalluserfont(charfar*name);

程序例:

#include

#include

#include

#include

/*functionprototype*/

voidcheckerrors(void);

intmain(void)

{

  /*requestautodetection*/

  intgdriver=DETECT,gmode;

  intuserfont;

  intmidx,midy;

  /*initializegraphicsandlocalvariables*/

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

  midx=getmaxx()/2;

  midy=getmaxy()/2;

  /*checkforanyinitializationerrors*/

  checkerrors();

  /*installauserdefinedfontfile*/

  userfont=installuserfont("USER.CHR");

  /*checkforanyinstallationerrors*/

  checkerrors();

  /*selecttheuserfont*/

  settextstyle(userfont,HORIZ_DIR,4);

  /*outputsometext*/

  outtextxy(midx,midy,"Testing!

");

  /*cleanup*/

  getch();

  closegraph();

  return0;

}

/*checkforandreportanygraphicserrors*/

voidcheckerrors(void)

{

  interrorcode;

  /*readresultoflastgraphicsoperation*/

  errorcode=graphresult();

  if(errorcode!

=grOk)

  {

     printf("Graphicserror:

%s\n",grapherrormsg(errorcode));

     printf("Pressanykeytohalt:

");

     getch();

     exit

(1);

  }

 }

 

 

 

函数名:

int86

功 能:

通用8086软中断接口

用 法:

intint86(intintr_num,unionREGS*inregs,unionREGS*outregs);

程序例:

#include

#include

#include

#defineVIDEO0x10

voidmovetoxy(intx,inty)

{

  unionREGSregs;

  regs.h.ah=2; /*setcursorpostion*/

  regs.h.dh=y;

  regs.h.dl=x;

  regs.h.bh=0; /*videopage0*/

  int86(VIDEO,®s,®s);

}

intmain(void)

{

  clrscr();

  movetoxy(35,10);

  printf("Hello\n");

  return0;

}

 

 

函数名:

int86x

功 能:

通用8086软中断接口

用 法:

intint86x(intintr_num,unionREGS*insegs,unionREGS*outregs,structSREGS*segregs);

程序例:

#include

#include

#include

intmain(void)

{

  charfilename[80];

  unionREGSinregs,outregs;

  structSREGSsegregs;

  printf("Enterfilename:

");

  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("Fileattribute:

%X\n",outregs.x.cx);

  return0;

}

 

 

 

函数名:

intdos

功 能:

通用DOS接口

用 法:

intintdos(unionREGS*inregs,unionREGS*outregs);

程序例:

#include

#include

/*deletesfilename;returns0onsuccess,nonzeroonfailure*/

intdelete_file(charnear*filename)

{

  unionREGSregs;

  intret;

  regs.h.ah=0x41;                           /*deletefile*/

  regs.x.dx=(unsigned)filename;

  ret=intdos(®s,®s);

  /*ifcarryflagisset,therewasanerror*/

  return(regs.x.cflag?

ret:

0);

}

intmain(void)

{

  interr;

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

  if(!

err)

     printf("AbletodeleteNOTEXIST.$$$\n");

  else

     printf("NotAbletodeleteNOTEXIST.$$$\n");

  return0;

}

 

 

 

函数名:

intdosx

功 能:

通用DOS中断接口

用 法:

intintdosx(unionREGS*inregs,unionREGS*outregs,structSREGS*segregs);

程序例:

#include

#include

/*deletesfilename;returns0onsuccess,nonzeroonfailure*/

intdelete_file(charfar*filename)

{

  unionREGSregs;structSREGSsregs;

  intret;

  regs.h.ah=0x41;                     /*deletefile*/

  regs.x.dx=FP_OFF(filename);

  sregs.ds=FP_SEG(filename);

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

  /*ifcarryflagisset,therewasanerror*/

  return(regs.x.cflag?

ret:

0);

}

intmain(void)

{

  interr;

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

  if(!

err)

     printf("AbletodeleteNOTEXIST.$$$\n");

  else

     printf("NotAbletodeleteNOTEXIST.$$$\n");

  return0;

}

 

 

函数名:

intr

功 能:

改变软中断接口

用 法:

voidintr(intintr_num,structREGPACK*preg);

程序例:

#include

#include

#include

#include

#defineCF1 /*Carryflag*/

intmain(void)

{

  chardirectory[80];

  structREGPACKreg;

  printf("Enterdirectorytochangeto:

");

  gets(directory);

  reg.r_ax=0x3B<<8;        /*shift3Bhinto AH*/

  reg.r_dx=FP_OFF(directory);

  reg.r_ds=FP_SEG(directory);

  intr(0x21,®);

  if(reg.r_flags&CF)

     printf("Directorychangefailed\n");

  getcwd(directory,80);

  printf("Thecurrentdirectoryis:

%s\n",directory);

  return0;

}

 

 

函数名:

ioctl

功 能:

控制I/O设备

用 法:

intioctl(inthandle,intcmd[,int*argdx,intargcx]);

程序例:

#include

#include

#include

intmain(void)

{

  intstat;

  /*usefunc8todetermineifthedefaultdriveisremovable*/

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

  if(!

stat)

     printf("Drive%cisremovable.\n",getdisk()+'A');

  else

     printf("Drive%cis

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1