好像<window.h>有个函数是可以移动光标的。

去追寻更高的技术领域。永不停止。
程序代码:#include <stdio.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
#include<iostream>
int Tui(int (*arr)[20],int *x,int *y,int n);
void Move(int x,int y)
{
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos= {x, y};
SetConsoleCursorPosition(hOut, pos);
}
void Put(int (*arr)[20])//打印地图
{
int x=1,y=1;
int i,j;
arr[x][y]=2;
for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{
if (arr[i][j]==1)
printf("■");
if (arr[i][j]==2)
printf("¤");
if (arr[i][j]==0)
printf(" ");
if (arr[i][j]==3)
printf("◎");
if (arr[i][j]==5)
printf("〓");
if (arr[i][j]==6)
printf("▲");
if (arr[i][j]==7)
printf("△");
if (arr[i][j]==8)
printf("¤");
if (arr[i][j]==9)
printf("▲");
}
printf("\n");
}
}
void character(char n1,int (*arr)[20],int *x1,int *y1) //传数组的首地址,
{
int x=*x1,y=*y1;
switch(n1)
{
case 'w':case'W': //上
if(arr[*x1-1][*y1]==1/*||arr[*x1-1][*y1]==7*/||arr[*x1-1][*y1]==8)
{
break;
}
if (arr[*x1-2][*y1]==1&&arr[*x1-1][*y1]==7)
{
break;
}
{arr[(*x1)--][*y1]=2;
arr[*x1+1][*y1]=0;}
break;
case's':case'S': //下
if (arr[*x1+1][*y1]==1/*||arr[*x1+1][*y1]==7*/||arr[*x1+1][*y1]==8)
{
break;
}
if(arr[*x1+2][*y1]==1&&arr[*x1+1][*y1]==7)
{
break;
}
arr[(*x1)++][*y1]=2; //(*x1)++加括号
arr[*x1-1][*y1]=0;
break;
case'a':case'A': //左
if(arr[*x1][*y1-1]==1/*||arr[*x1][*y1-1]==7*/||arr[*x1][*y1-1]==8)
{
break;
}
if(arr[*x1][*y1-2]==1&&arr[*x1][*y1-1]==7)
break;
arr[*x1][(*y1)--]=2;
arr[*x1][*y1+1]=0;
break;
case'd':case'D': //右
if(arr[*x1][*y1+1]==1/*||arr[*x1][*y1+1]==7*/||arr[*x1][*y1+1]==8)
{
break;
}
if (arr[*x1][*y1+2]==1&&arr[*x1][*y1+1]==7)
break;
arr[*x1][(*y1)++]=2;
arr[*x1][*y1-1]=0;
break;
}
Move(y*2,x);printf(" ");//老人物坐标
Move((*y1)*2,*x1);printf("¤");//新任务坐标
}
。。看看行不,就是抹除上一个坐标