2个回答
展开全部
主要看你的数据是怎样的?
这是我以前写的。
也可先去我空间看下运行结果。
http://hi.baidu.com/ryw12403/blog/item/a67b963e45de843a71cf6c2f.html
#include <stdio.h>
#define N 40
int printend(){
char page[5],i;
printf("\n\nESC->exit n->nextpage l->lastpage e->endpage s->startpage jumppage >:");
i=0;
while((page[i++]=getche())!='\r');
page[i]='\0';
if(isdigit(page[0]))
return atoi(page);
else
return page[0];
}
main(){
int a,i,k;
for(i=1;i<=N;i++){
printf("\n%2d**********************",i);
if(i%10==0){
a=printend();
k=i;
switch(a){
case 'p':
case 'P':
if(i>10)
i-=20;
else
i=0;
break;
case 'n':
case 'N':
if(i>=N)
i=N-10;
break;
case 's':
case 'S':
i=0;
break;
case 'e':
case 'E':
i=N-10;
break;
case 27:
exit(0);
default:
i=a*10-10;
if(i>N){
printf("\nError ,max page is %d.",N/10);
printf("Press anykey to continue.");
getch();
i=N-10;
}
break;
}
clrscr();
}
}
getchar();
}
这是我以前写的。
也可先去我空间看下运行结果。
http://hi.baidu.com/ryw12403/blog/item/a67b963e45de843a71cf6c2f.html
#include <stdio.h>
#define N 40
int printend(){
char page[5],i;
printf("\n\nESC->exit n->nextpage l->lastpage e->endpage s->startpage jumppage >:");
i=0;
while((page[i++]=getche())!='\r');
page[i]='\0';
if(isdigit(page[0]))
return atoi(page);
else
return page[0];
}
main(){
int a,i,k;
for(i=1;i<=N;i++){
printf("\n%2d**********************",i);
if(i%10==0){
a=printend();
k=i;
switch(a){
case 'p':
case 'P':
if(i>10)
i-=20;
else
i=0;
break;
case 'n':
case 'N':
if(i>=N)
i=N-10;
break;
case 's':
case 'S':
i=0;
break;
case 'e':
case 'E':
i=N-10;
break;
case 27:
exit(0);
default:
i=a*10-10;
if(i>N){
printf("\nError ,max page is %d.",N/10);
printf("Press anykey to continue.");
getch();
i=N-10;
}
break;
}
clrscr();
}
}
getchar();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TC滚屏
滚屏就是调用中断 10h
union REGS r;
/*
AH = 06h 向上滚动;07h 向下滚动
AL = 空白行填充颜色
CH,CL = 滚动区域左上角行列
DH,DL = 滚动区域右下角行列
*/
r.x.ah = 0x06;
r.x.al = 1;
r.x.bh = 0x0;
r.x.ch = 5;
r.x.cl = 2;
r.x.dh = 10;
r.x.dl = 70;
int86(0x10, &r, &r);
滚屏就是调用中断 10h
union REGS r;
/*
AH = 06h 向上滚动;07h 向下滚动
AL = 空白行填充颜色
CH,CL = 滚动区域左上角行列
DH,DL = 滚动区域右下角行列
*/
r.x.ah = 0x06;
r.x.al = 1;
r.x.bh = 0x0;
r.x.ch = 5;
r.x.cl = 2;
r.x.dh = 10;
r.x.dl = 70;
int86(0x10, &r, &r);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询