首页 热点资讯 义务教育 高等教育 出国留学 考研考公

VS中用C语言如何实现光标的任意移动

发布网友 发布时间:2022-04-27 05:12

我来回答

4个回答

热心网友 时间:2022-06-26 18:37

函数名:gotoxy
原型:extern void gotoxy(int x, int y);
用法:#include <system.h>
功能:将光标移动到指定位置说明:gotoxy(x,y)将光标移动到指定行y和列x。设置光标到文本屏幕的指定位置,其中参数x,y为文本屏幕的坐标。
gotoxy(0,0)将光标移动到屏幕左上角


例程:

//这个例子将在屏幕*输出“hello world”
#include <stdio.h>
#include <conio.h>
#include <system.h>
int main(){
    clrscr();
    gotoxy(35, 12);
    cputs("Hello world");
    getch();
    return 0;
}


热心网友 时间:2022-06-26 18:37

#include<stdio.h>
#include<conio.h>
#include<windows.h>

int wherex()
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO p;
GetConsoleScreenBufferInfo(hConsole, &p);
return p.dwCursorPosition.X;
}

int wherey()
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO p;
GetConsoleScreenBufferInfo(hConsole, &p);
return p.dwCursorPosition.Y;
}

void gotoxy(int x, int y)
{
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
}

int f()
{
int c;
int x, y;
printf("上下左右移动光标 退格删除\n");
printf("按esc退出:\n");
while(1)
{
c = getch();
//printf("%d", c);
if(c == 27) break;
else if(c==8) { gotoxy(wherex()-1, wherey()); printf(" "); gotoxy(wherex()-1, wherey());}
else if(c!=224) printf("%c", c);
else
{
c += getch();
x = wherex();
y = wherey();
switch(c)
{
case 296: y--; break;
case 304: y++; break;
case 299: x--; break;
case 301: x++; break;
default: break;
}

//printf("%d %d ", x, y);
gotoxy(x, y);
}
}

}
int main()
{
f();
}

热心网友 时间:2022-06-26 18:38

gotoxy(int x,int y)顾名思义,就是让光标goto到xy坐标的位置!O(∩_∩)O~

热心网友 时间:2022-06-26 18:38

不知道你有没有看过《WINDOUS程序设计》这本书,或者说不知道你清不清楚API这个名词,走起吧!去百度你想要的答案。追问百度看了好久,都没有看太明白。API完全不懂。。。求大神解答呀。

追答API用通俗的话来讲,就是WINDOWS操作系统的接口,微软公司留给我们程序员的接口。
你学了C语言后,不知你有没有这样的疑问过,就是C语言好像运行程序只能在控制窗口上玩,也既是那黑黑的框(如下图1),只是单单的显示出一些结果什么的。

我们平时如果去安装什么软件时,是不是都是这个的窗口?下图2

怎样能才开始像安装软件时那样的窗口,就是调API。
而你现在要学人机对战黑白棋就要调动API。(不知图片有没有上传的了)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com