c语言编程技巧.doc_第1页
c语言编程技巧.doc_第2页
c语言编程技巧.doc_第3页
c语言编程技巧.doc_第4页
c语言编程技巧.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言编程技巧/*从键盘中读取字符 功能:按下普通键时,返回其ASCII码 扫描码CODE=0*/ int INKEY(int *code) int m; while(!bioskey(1)/*可加入无按键时代码*/; *code=bioskey(0); m=*code*255; if(!m) m=*code8; *code=*code&255; return m; /*获取机器日期*/ int DATE(char *s,char type) char dat30; int num; struct tm *tblock; time_t t; t=time(NULL); tblock=localtime(&t); strcpy(dt,asctime(tblock); strcpy(s,); switch(type) case N: num=(*tblock).tm_year+1900; itoa(num,s,10); break; case Y: num=(*tblock).tm_mon+1; itoa(num,s,10); break; case R: num=(*tblock).tm_mday; itoa(num,s,10); break; case S: strcpy(dt,asctime(tblock); MID(s,dt,12,8); break; return num; /*将浮点数转化为字符串*/ /* 参数说明 data:需转换的浮点数;s:输出字符串;len:转换后的长度*/ void f_to_s(double data,char *s,int len) int dec,sign,i; char *s1,s2100,s3100; s1=0; s20=0; s30=0; s1=fcvt(data,len,&dec,&sign); if (!sign&data=1) MID(s2,s1,dec+1,-1); MID(s3,s1,1,dec); strcpy(s,+); strcat(s,s3); strcat(s,.); strcat(s,s2); if (sign&fabs(data)=1) MID(s2,s1,dec+1,-1); strcpy(s,-); MID(s3,s1,1,dec); strcat(s,s3); strcat(s,.); strcat(s,s2); if (!sign&dec=0) strcpy(s,+0.); strcat(s,s1); if (sign&dec=0) strcpy(s,-0.); strcat(s,s1); if (!sign&dec0) strcpy(s,+0.); for(i=1;i=fabs(dec);i+) strcat(s,0); strcat(s,s1); if (sign&dec0) strcpy(s,-0.); for(i=1;ilen) slen=0; /*清除屏幕*/ void CLSXY(int color,int x,int y,int xl,int yl) int x1,y1; union REGS r; if(x1|y25|x180) return; r.h.ah=6; /*子功能号*/ r.h.al=0; /*滚动行数*/ r.h.ch=y; r.h.cl=x; r.h.dh=y1; r.h.dl=x1; r.h.bh=color*16; int86(16,&r,&r); /*显示时间*/ void display_time(int color,int back_color,int y,int x) static char oldtime9=; char newtime9; if(y1|x1) return; settextstyle(1,0,1); DATA(newtime,S); back_color=7; if(strcmp(newtime,oldtime) setfillstyle(1,back_color); setcolor(color); bar(535,458,635,475); outtextxy(x,y,newtime); strcpy(oldtime,newtime); /*打印一个矩形*/ void PRINT_KJ(int x,int y,int wide,int high) int i; for(i=x;i gotoxy(i,y); cprintf(); gotoxy(x,y+high); cprintf(); gotoxy(x+wide,y+high); cprintf(); gotoxy(x,y); cprintf(); gotoxy(x+wide,y); cprintf(); for(i=x+2;i gotoxy(i,y+high); cprintf(); for(i=y+1;i gotoxy(x,i); cprintf(); for(i=y+1;i gotoxy(x+wide,i); cprintf(); /*砍掉字符串中所有空格*/ void CUT_ALL_SPC(char *s) int i,n; char d10000; n=0; for(i=0;iif(si!=32) dn=si; n+; dn=0; strcpy(s,d); /*取子字符串*/ void MID(char *s,char *t,int n,int m) int i,j,p; if(n1) n=1; i=strlen(s); if(iif(mi) m=i; p=m-n+1; if(pl) n=l; for(i=0;i*d+=*s+; *d=0; /*取左字符串*/ void LEFT(char *d,char *s,int n) int i,l; i=0; l=strlen(s); if(nl) n=l; for(i=0;idi=si; dn=0; /*向文件写数据*/ void WRITE_STR(char *s,FILE *fp) char c=10; if(!fp) return; fputs(s,fp); fputc(c,fp); /*取右字符串*/ void RIGHT(char *dest,char *source,int num) int i,j; if (num1) num=0; num=strlen(source)-num; if (num0) num=0; for(i=0,j=num;j30000) i=30000; if (i50) i=50; sound(frequency); MYDELAY(i); nosound(); /*时间延迟*/ void MYDELAY(long t) time_t OldTime; long t0; t0=t/55; if (t01) t0=1; OldTime=clock(); while(clock()-OldTime /*正点报时*/ void REPORT_CLOCK(void) int i; for(i=0;i0) for(i=l;i-1;i-) si+n=si; for(i=0;i /*字符串居中*/ void MOVE_MIDDLE(char *s,int wide) int i,l,n; l=strlen(s); if (widel) wide=wide-1; n=wide/2; wide=wide-n; for(i=l;i-1;i-) si+n=si; for(i=0;ifor(i=0;isl+n+i=0; /*删除子字符串*/ void Delete_SubString(char *source,int start,int num) int i,l; l=strlen(source); if (numl-start+1|num=-1) num=l-start+1; if (start1) return; for(i=start;isourcei-1=sourcei+num-1; /*查找指定字符串*/ int INSTR(int n,char *source,char *dest) int i,j,k1,k2,p; int start=0; if (n=0) n=1; k1=strlen(source); k2=strlen(dest); if (n0) char s100; n=-n; MID(s,source,n,k2); if (strcmp(s,dest) return 0; return n; if (k1-n+1for(i=n-1;i p=0; for(j=0;jif (sourcei+j!=destj) break; else p+; if (p=k2) start=i+1; break; return start; /*产生空格*/ void SPACE(char *s,int n) int i; if (n0) n=0; for(i=0;i*s=0; /*产生字符串*/ void STRING(int n,char *s1,char *s2) int i; if (n0) n=0; s10=0; for(i=1;i-1;j-) if (sj!= ) break; sj+1=0; /*显示一个字符串*/ void DISPLAY(char *s) union REGS regs; int color,x,y; x=wherex(); y=wherey(); color=16*bjys+qjys; while(*s) if(x80) break; regs.h.ah=9; regs.h.al=*s; regs.h.bh=0; regs.h.bl=color; regs.x.cx=1; /*显示的次数,不改变光标位置*/ int86(16,?s,?s); x+; if(x80) x=1; y+; if(y25) y=25; gotoxy(x,y); s+; /*定义屏幕颜色*/ void COLOR(int ForeColor,int BackColor) if(ForeColor15) return; if(BackColor15) return; qjys=ForeColor; bjys=BackColor; /*显示提示窗口*/ void quit_YesNo(char *s1,char *s2) char buffer2000,jx; gettext(30,8,76,16,buffer); textbackground(3); CLSXY(8,32,9,30,6); CLSXY(4,30,8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论