如何在特定位置打印文本?

时间:2013-01-07 12:06:31

标签: c dos conio

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 25

main(){
    int a[MAX],i,j,lvl=2,score=0;
    float time=1.0,speed;
    speed=time/lvl;

    clrscr();

    for(i=0;i<MAX;i++)
        a[i]=rand()%50+1;

    while(1){
        for(j=0;j<MAX;j++){
            gotoxy(a[j],1);
            printf("*");
            gotoxy(1,1);
            insline();
            sleep(speed);
            score++;
            gotoxy(57,1);
            clrscr();
            printf("%d",score);
            if(score==100)
                lvl++;
        }
    }
}

您好我正在尝试使用gotoxy()在屏幕的右上角打印乐谱。我使用gotoxy(1,1)设置了光标位置,使用insline()插入空白行。但每次我在屏幕上打印得分时,它都会连续打印得分,如下所示:

DOS screenshot with scores repeating down the right side

强调文字以其他方式打印乐谱并在insline()插入新行时将其删除,以便最后一个乐谱不会打印在屏幕上目前的分数只是?

1 个答案:

答案 0 :(得分:1)

你应该使用这个功能

WriteConsoleOutput(....);

在MSDN上查看

http://msdn.microsoft.com/en-us/library/windows/desktop/ms687404(v=vs.85).aspx