c语言编程技巧.docx
- 文档编号:5867477
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:16
- 大小:17.40KB
c语言编程技巧.docx
《c语言编程技巧.docx》由会员分享,可在线阅读,更多相关《c语言编程技巧.docx(16页珍藏版)》请在冰豆网上搜索。
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);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 技巧
![提示](https://static.bdocx.com/images/bang_tan.gif)