c语言如何实现模拟键盘输入?
是这样的,我在做c语言程序设计,是海龟作图问题。源代码如下:#include<stdio.h>
void print(int [][51]);
void move(int [][51],int,int,int);
void yidong(int [][51],int,int,int);
int x=0,y=0; //海龟位置坐标,为全局变量,初始在左上角。
int main()
{
int step[51][51];
int i,j,a=1,gostep=1,direct=1,record=1;
for(i=0;i<=49;i++)
for(j=0;j<=49;j++)
step[i][j]=0;
for(;;){ printf("a=%d,gostep=%d,direct=%d,record=%d,x=%d,y=%d\n",a,gostep,direct,record,x,y);
printf("请输入 a ");//(输入“1”代表不记录移动痕迹,“2”代表记录移动痕迹;“3”代表笔尖向左转,“4”代表笔尖向右转,“5”代表开始移动gostep步
scanf("%d",&a);
if(a==2) record=1;
if(a==1) record=0;
if(a==4)
{
direct++;
if(direct==5) direct=1;
continue;
}
if(a==3)
{
direct--;
if(direct==0) direct=4;
continue;
}
if(a==5)
{ printf("请输入 gostep");
scanf("%d",&gostep);
move(step,gostep,direct,record);
continue;
}
if(a==6)
print(step);
if(a==7)
{printf("请输入 gostep");
scanf("%d",&gostep);
yidong(step,gostep,direct,record);
continue;
}
if(a==9)
return 0;
}
}
//打印海龟踪迹,显示在屏幕上
void print(int s[][51])
{
int i,j;
for(i=0;i<50;i++){
for(j=0;j<50;j++){
printf(s[i][j]==0? "-":"*");
}
printf("\n");
}
}
//海龟移动,i,j,k分别对应:gostep,direct,record
void move(int t[][51],int i,int j,int k)
{
int xmove,ymove,num;
if(j==1)
{
xmove=1;ymove=0;}
if(j==2)
{
xmove=0;ymove=1;
}
if(j==3)
{
xmove=-1;ymove=0;
}
if(j==4)
{
xmove=0;ymove=-1;
}
for(num=0;num<i;num++)
{
if(x<0||x>50||y<0||y>50)
{
printf("the place is danger ,you are died\n");
return;
}
t[y][x]+=k;
x=x+xmove;
y=y+ymove;
}
}
void yidong(int t[][51],int i,int j,int k)
{
int xmove,ymove,num;
if(j==1)
{
xmove=-1;ymove=1;}
if(j==2)
{
xmove=1;ymove=1;
}
if(j==3)
{
xmove=1;ymove=-1;}
if(j==4)
{
xmove=-1;ymove=-1;
}
for(num=0;num<i;num++)
{
if(x<0||x>50||y<0||y>50)
{
printf("the place is danger ,you are died\n");
return;
}
t[y][x]+=k;
x=x+xmove;
y=y+ymove;
}
}
但是每次都要手动输入一大堆数字,很麻烦。请问如何实现模拟键盘输入,只要每次运行就会自动输入以下数字:
1,4,5,5,3,2,5,50, 1,4,5,5,4,2,5,50, 1,4,5,10,4,5,25,2,4,5,10, 1,5,5,4,2,5,22, 3,5,10, 3,5,44, 3,5,10, 3,5,22, 1,3,5,12,2,5,5,4,5,20,3,3,5,40,4,4,5,20,3,5,1,7,12,4,4,7,12,4,7,13,6。