c语言编程技巧.docx

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

c语言编程技巧.docx

《c语言编程技巧.docx》由会员分享,可在线阅读,更多相关《c语言编程技巧.docx(16页珍藏版)》请在冰豆网上搜索。

c语言编程技巧.docx

c语言编程技巧

c语言编程技巧

/*从键盘中读取字符功能:

按下普通键时,返回其ASCII码扫描码CODE=0*/

intINKEY(int*code)

{

intm;

while(!

bioskey

(1))/*可加入无按键时代码*/;

*code=bioskey(0);

m=*code*255;

if(!

m)m=*code>>8;

*code=*code&255;

returnm;

}

/*获取机器日期*/

intDATE(char*s,chartype)

{

chardat[30];

intnum;

structtm*tblock;

time_tt;

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;

}

}

returnnum;

}

/*将浮点数转化为字符串*/

/*参数说明data:

需转换的浮点数;s:

输出字符串;len:

转换后的长度*/

voidf_to_s(doubledata,char*s,intlen)

{

intdec,sign,i;

char*s1,s2[100],s3[100];

s1=0;

s2[0]=0;

s3[0]=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&&dec<0)

{

strcpy(s,"+0.");

for(i=1;i<=fabs(dec);i++)

strcat(s,"0");

strcat(s,s1);

}

if(sign&&dec<0)

{

strcpy(s,"-0.");

for(i=1;i<=fabs(dec);i++)

strcat(s,"0");

strcat(s,s1);

}

if(strlen(s)>len)s[len]=0;

}

/*清除屏幕*/

voidCLSXY(intcolor,intx,inty,intxl,intyl)

{

intx1,y1;

unionREGSr;

if(x<1||y<1)return;

y--;

x--;

y1=y+yl-1;

x1=x+xl-1;

if(y1>25||x1>80)

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

}

/*显示时间*/

voiddisplay_time(intcolor,intback_color,inty,intx)

{

staticcharoldtime[9]="";

charnewtime[9];

if(y<1||x<1)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);

}

}

/*打印一个矩形*/

voidPRINT_KJ(intx,inty,intwide,inthigh)

{

inti;

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("");

}

}

/*砍掉字符串中所有空格*/

voidCUT_ALL_SPC(char*s)

{

inti,n;

chard[10000];

n=0;

for(i=0;iif(s[i]!

=32)

{

d[n]=s[i];

n++;

}

d[n]=0;

strcpy(s,d);

}

/*取子字符串*/

voidMID(char*s,char*t,intn,intm)

{

inti,j,p;

if(n<1)n=1;

i=strlen(s);

if(iif(m<0)m=i;

elsem=n+m-1;

if(m>i)m=i;

p=m-n+1;

if(p<0)p=0;

for(i=n-1,j=0;it[j]=s[i];

t[p]=0;

}

/*从文件中读取字符*/

intREAD_STR(char*s,FILE*fp)

{

inti=0;

if(!

fp)return0;

if(fgets(s,10000,fp))i=1;

s[strlen(s)-1]=0;

returni;

}

/*字符串左靠齐*/

voidMOVE_LEFT(char*d,char*s,intn)

{

inti,l;

l=strlen(s);

if(n>l)n=l;

for(i=0;i*d++=*s++;

*d=0;

}

/*取左字符串*/

voidLEFT(char*d,char*s,intn)

{

inti,l;

i=0;

l=strlen(s);

if(n>l)n=l;

for(i=0;id[i]=s[i];

d[n]=0;

}

/*向文件写数据*/

voidWRITE_STR(char*s,FILE*fp)

{

charc=10;

if(!

fp)return;

fputs(s,fp);

fputc(c,fp);

}

/*取右字符串*/

voidRIGHT(char*dest,char*source,intnum)

{

inti,j;

if(num<1)num=0;

num=strlen(source)-num;

if(num<0)num=0;

for(i=0,j=num;j<=strlen(source);i++,j++)dest[i]=source[j];

}

/*打开或关闭光标*/

voidCURSOR(inton2off)

{

unionREGSr;

if(on2off!

=OFF)on2off=10;

r.h.ah=1;

r.h.ch=3;

r.h.cl=on2off;

int86(16,&r,&r);

}

/*喇叭发声*/

voidSOUND(intfrequency,inttime)

{

inti;

i=time*50;

if(i>30000)i=30000;

if(i<50)i=50;

sound(frequency);

MYDELAY(i);

nosound();

}

/*时间延迟*/

voidMYDELAY(longt)

{

time_tOldTime;

longt0;

t0=t/55;

if(t0<1)t0=1;

OldTime=clock();

while(clock()-OldTime}

/*正点报时*/

voidREPORT_CLOCK(void)

{

inti;

for(i=0;i<5;i++);

{

SOUND(500,10);

MYDELAY(1000);

}

SOUND(800,10);

}

/*写整数于文件中*/

voidWRITE_INT(intnum,FILE*p)

{

chars[20],a=10;

if(!

p)return;

itoa(num,s,10);

fputs(s,p);

fputc(a,p);

}

/*从文件中读取整数*/

intREAD_INT(int*num,FILE*p)

{

inti;

chars[30]="";

if(!

p)return0;

if(fgets(s,10000,p))

{

i=-1;

s[strlen(s)-1]=0;

*num=atoi(s);

}

elsei=0;

returni;

}

/*报警*/

voidWARN(void)

{

SOUND(300,1);

SOUND(100,1);

}

/*字符串右靠齐*/

voidMOVE_RIGHT(char*s,intwide)

{

inti,l,n;

l=strlen(s);

n=wide-l;

if(n>0)

{

for(i=l;i>-1;i--)s[i+n]=s[i];

for(i=0;i}

}

/*字符串居中*/

voidMOVE_MIDDLE(char*s,intwide)

{

inti,l,n;

l=strlen(s);

if(wide>l)

{

wide=wide-1;

n=wide/2;

wide=wide-n;

for(i=l;i>-1;i--)s[i+n]=s[i];

for(i=0;ifor(i=0;is[l+n+i]=0;

}

}

/*删除子字符串*/

voidDelete_SubString(char*source,intstart,intnum)

{

inti,l;

l=strlen(source);

if(num>l-start+1||num==-1)num=l-start+1;

if(start<1||start>1)return;

for(i=start;isource[i-1]=source[i+num-1];

}

/*查找指定字符串*/

intINSTR(intn,char*source,char*dest)

{

inti,j,k1,k2,p;

intstart=0;

if(n==0)n=1;

k1=strlen(source);

k2=strlen(dest);

if(n<0)

{

chars[100];

n=-n;

MID(s,source,n,k2);

if(strcmp(s,dest))return0;

returnn;

}

if(k1-n+1for(i=n-1;i{

p=0;

for(j=0;jif(source[i+j]!

=dest[j])break;

elsep++;

if(p==k2)

{

start=i+1;

break;

}

}

returnstart;

}

/*产生空格*/

voidSPACE(char*s,intn)

{

inti;

if(n<0)n=0;

for(i=0;i*s=0;

}

/*产生字符串*/

voidSTRING(intn,char*s1,char*s2)

{

inti;

if(n<0)n=0;

s1[0]=0;

for(i=1;i<=n;i++)strcat(s1,s2);

}

/*砍掉字符串左边空格*/

voidCUT_LEFT_SPACE(char*s)

{

inti,j,k=0;

i=strlen(s)+1;

for(j=0;jfor(k=0;j}

/*砍掉字符串右边空格*/

voidCUT_RIGHT_SPACE(char*s)

{

inti,j;

i=strlen(s)-1;

for(j=i;j>-1;j--)if(s[j]!

='')break;

s[j+1]=0;

}

/*显示一个字符串*/

voidDISPLAY(char*s)

{

unionREGSregs;

intcolor,x,y;

x=wherex();

y=wherey();

color=16*bjys+qjys;

while(*s)

{

if(x>80)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(x>80)

{

x=1;

y++;

if(y>25)y=25;

}

gotoxy(x,y);

s++;

}

}

/*定义屏幕颜色*/

voidCOLOR(intForeColor,intBackColor)

{

if(ForeColor<0||ForeColor>15)return;

if(BackColor<0||BackColor>15)return;

qjys=ForeColor;

bjys=BackColor;

}

/*显示提示窗口*/

voidquit_YesNo(char*s1,char*s2)

{

charbuffer[2000],jx;

gettext(30,8,76,16,buffer);

textbackground(3);

CLSXY(8,32,9,30,6);

CLSXY(4,30,8,30,6);

COLOR(15,4);

gotoxy(35,10);

DISPLAY(s1);

gotoxy(35,12);

DISPLAY(s2);

gotoxy(35+strlen(s2)+1,12);

jx=getch();

puttext(30,8,76,16,buffer);

if(jx=='n'||jx=='N')return;

textbackground(0);

textcolor(15);

clrscr();

CURSOR(ON);

exit(0);

}

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

当前位置:首页 > 自然科学

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

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