C语言,光标移动问题

这是五子棋的一部分代码
// 将光标移动到指定位置
void gotoxy(int x, int y,HANDLE hOutput)
{
COORD coordScreen={0,0};
coordScreen.X=x;
coordScreen.Y=y;
SetConsoleCursorPosition( hOutput, coordScreen );//API中定位光标位置的函数
}

// 更新棋盘指定位置的图像——打印气质棋盘上的一个点
void renew(int x, int y,HANDLE hOutput,point cursor)
{
COORD coordScreen;// 系统提示符位置
CONSOLE_SCREEN_BUFFER_INFO c;// 窗口缓冲区信息
if( !GetConsoleScreenBufferInfo( hOutput, &c ))// 获取屏幕信息 //获取控制台窗口信息

return;// 不成功则返回
coordScreen=c.dwCursorPosition;//获取系统提示符位置
gotoxy( 2*y+2 , x+1, hOutput);//将系统提示符移动到棋盘的(x,y)所在位置-------?
printnode(x,y, hOutput, cursor);//重新打印这一块
SetConsoleCursorPosition(hOutput, coordScreen );
}

带问号的那一句不懂。为什么,是2*y+2,x+1

这里应该是棋盘坐标系和屏幕坐标系之间的映射(转换)

下面属于猜测:

屏幕坐标系(原点1,1):
+---------------->y
|
|

v
x

棋盘坐标系(原点0,0):

y
^
|
|
|
+------------------x
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言编程中如何将光标移到上一行
可以使用gotoxy函数。原型:extern void gotoxy(int x,int y);用法:#include <system.h> 功能:将光标移动到指定位置说明:gotoxy(x,y)将光标移动到指定行y和列x。设置光标到文本屏幕的指定位置,其中参数x,y为文本屏幕的坐标。假设上一行是屏幕的左上角。gotoxy(0,0)\/\/将光标移动到屏幕左上...

c语言怎么移动光标Xcode系统
control+F:在同一行上将光标向右移动control+B:在同一行上将光标向左移动control+P:将光标移动到前一行control+N:将光标移动到后一行control+A:将光标移动到本行的行首control+N:将光标移动到本行的行尾control+T:将光标两边的字符对调control+D:删除光标右边的字符control+k:删除光标所在行光标...

C语言光标的移动程序是什么 要详细一点
可以用gotoxy函数移动光标。1、函数名:gotoxy 原型:extern void gotoxy(int x,int y);用法:#include 功能:将光标移动到指定位置说明:gotoxy(x,y)将光标移动到指定行y和列x。设置光标到文本屏幕的指定位置,其中参数x,y为文本屏幕的坐.

C语言光标移动
很明显这个结构可以用来记录坐标 GetStdHandle()函数获得标准输入输出的句柄,参数STD_OUTPUT_HANDLE是个宏,代表标准输出,可以看作显示器 SetConsoleCursorPosition(hout,coord); 看函数名称:设置控制台光标坐标,参数就是设备句柄,坐标,那么把标准输出的句柄传给函数,就可以把光标定位在对应的位置了(左...

C语言中,怎样使光标回到上一行???求具体程序!!!
void gotoxy(int x,int y) \/\/将光标移动到坐标为(x,y)的地方 { CONSOLE_SCREEN_BUFFER_INFO csbiInfo;HANDLE hConsoleOut;hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);csbiInfo.dwCursorPosition.X = x;csbiInfo.dwCursorPositio...

c语言程序运行后没有输出结果只有光标向下移动了,如果再随便输入一些...
原因就是你的输入函数写的有问题,你的格式控制列表是这样写的:"a=%f,b=%f,c=%f\\n",把后面的字符'\\n'去掉就可以了,这样程序就能正常运行了。否则无论输入多少个'\\n'(回车都不好使的),因为scanf函数输入的时候会自动忽略换行符,但是你的格式控制列表中却要求必须输入一个换行。所以会出现...

怎样使c语言中运行界面的光标移至上一行?
int x, y;gotoxy(5, 5);printf("position: 5, 5");x = wherex();y = wherey();getch();gotoxy(x, y - 1);getch();} 控制台的 include <windows.h> include <stdio.h> include <conio.h> void gotoxy(HANDLE hOut, int x, int y);void getxy(HANDLE hOut, int &x, int ...

C语言怎么在输入完成后把光标移到下一行开始处
通常是在 printf 函数中,在字符串的结尾添加 \\n 换行符:

C语言中,怎样使光标移动到上一行行末,急!!!
上下左右了 这没法具体了,你那C应该也不能用鼠标,所以就上下左右呗 再试试CTRL+F9,ALT+F5,多按按回车 你是说你的程序你是运行了吗,输入东西后,没有输出?

C语言中怎样使输出的光标在输入3行后 然后跳到第一行以此类推,但只能有...
}int main(){ HANDLE hOut; COORD pos; int i; hOut = GetStdHandle(STD_OUTPUT_HANDLE); printf("注意光标所在位置\\n"); while(1) { for(i=0;i<5;++i) { Sleep(2000); getpos(hOut,&pos); printf("打印这句话前,光标所在位置:%d,%d\\n",...

相似回答