精华内容
下载资源
问答
  • 对于C语言的初学者,基本上只能写一些控制台程序。然而有时候会涉及一些对光标的简单操作,现在一般都是用的VC++6.0,不再支持以前TC中的wherex、wherey、gotoxy等函数了,那么在VC中该怎样做呢?接下来,我就简单讲...

    对于C语言的初学者,基本上只能写一些控制台程序。然而有时候会涉及一些对光标的简单操作,现在一般都是用的VC++6.0,不再支持以前TC中的wherex、wherey、gotoxy等函数了,那么在VC中该怎样做呢?接下来,我就简单讲讲如何在VC中实现以上三个函数。

    【以下x、y分别代表列数和行数】

    //获取光标的位置x

    int wherex()

    {

    CONSOLE_SCREEN_BUFFER_INFO pBuffer;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

    return (pBuffer.dwCursorPosition.X+1);

    }

    //获取光标的位置y

    int wherey()

    {

    CONSOLE_SCREEN_BUFFER_INFO pBuffer;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

    return (pBuffer.dwCursorPosition.Y+1);

    }

    //设置光标的位置

    void gotoxy(int x,int y)

    {

    COORD c;

    c.X=x-1;

    c.Y=y-1;

    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);

    }

    ###注意:在用这些函数的时候要引用头文件#includ###

    下面来看一个具体应用的例子:

    #include

    #include

    int wherex()

    {

    CONSOLE_SCREEN_BUFFER_INFO pBuffer;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

    return (pBuffer.dwCursorPosition.X+1);

    }

    //获取光标的位置y

    int wherey()

    {

    CONSOLE_SCREEN_BUFFER_INFO pBuffer;

    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);

    return (pBuffer.dwCursorPosition.Y+1);

    }

    //设置光标的位置

    void gotoxy(int x,int y)

    {

    COORD c;

    c.X=x-1;

    c.Y=y-1;

    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);

    }

    int main()

    {

    int x, y;

    int select;

    gotoxy(10,5);

    printf(" 学生C语言成绩管理系统");

    gotoxy(15,8);

    printf("*********************主菜单*********************");

    gotoxy(15,9);

    printf("* 1 输入 2 删除 *");

    gotoxy(15,10);

    printf("* 3 查找 4 修改 *");

    gotoxy(15,11);

    printf("* 5 插入 6 统计 *");

    gotoxy(15,12);

    printf("* 7 排序 8 保存 *");

    gotoxy(15,13);

    printf("* 9 显示 0 退出 *");

    gotoxy(15,14);

    printf("************************************************");

    gotoxy(15,15);

    printf("请输入你的选择(0-9):[ ]");

    x=wherex();

    y=wherey();

    gotoxy(x-2,y);

    scanf("%d",&select);

    return 0;

    }

    498c88b53b300a0af55887e3afa53c02.png

    展开全文
  • 原理引入windows.h,首先是要获得输入的东西,然后通过判断:1、方向键:执行上下左右的移动功能2 、回车键:...//C语言实现控制台光标随意移动#include #include #include HANDLE hout;//获得输入char getInput...

    原理引入windows.h,首先是要获得输入的东西,然后通过判断:

    1、方向键:执行上下左右的移动功能

    2 、回车键:执行换行的功能。

    3、普通键:输入功能。

    终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动。

    //C语言实现控制台中光标随意移动

    #include

    #include

    #include

    HANDLE hout;

    //获得输入

    char getInput()

    {

    int ch; //输入字符串

    COORD coord; //屏幕上的坐标

    CONSOLE_SCREEN_BUFFER_INFO csbi; //控制台屏幕缓冲区信息

    coord.X=10;

    coord.Y=10;

    ch=getch();

    //0x0d表示回车,0XE0表示上下左右等键的键码

    while(ch==0xE0||ch==0x0d)

    {

    GetConsoleScreenBufferInfo(hout,&csbi);

    coord.X=csbi.dwCursorPosition.X; //得到坐标X的值

    coord.Y=csbi.dwCursorPosition.Y; //得到坐标Y的值

    //如果是回车

    if(ch==0x0d)

    {

    coord.X=0;

    coord.Y++;

    SetConsoleCursorPosition(hout,coord);

    break;

    }

    ch=getch();

    //上

    if(ch==0x48)

    {

    if(coord.Y!=0)coord.Y--;

    }

    //下

    else if(ch==0x50)

    {

    coord.Y++;

    }

    //左

    else if(ch==0x4b)

    {

    if(coord.X!=0){coord.X--;}

    }

    //右

    else if(ch==0x4d)

    {

    if(coord.X!=79)coord.X++;

    else

    {

    coord.X=0;

    coord.Y++;

    }

    }

    SetConsoleCursorPosition(hout,coord);

    ch=getch();

    }

    return ch;

    }

    int main()

    {

    char ch;

    hout=GetStdHandle(STD_OUTPUT_HANDLE);

    //从键盘获取输入,如果是方向键则执行方向功能,如果是回车键则换行,如果是字符则输出

    while(1)

    {

    ch=getInput();

    printf("%c",ch);

    }

    getchar();

    }

    17f474e14999d138d4ae6ea8126019b6.png

    以上这篇C语言之实现控制台光标随意移动的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    时间: 2016-07-03

    展开全文
  • 开始准备学习下C,新手哦~~今天弄了个控制台程序,光标可以随意在DOS下移动~~先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是I Love You.代码注释都有,其实好多东西我都是从其他地方拷贝了一些代码,毕竟是...

    开始准备学习下C,新手哦~~

    今天弄了个控制台程序,光标可以随意在DOS下移动~~

    先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是

    I Love You.

    b0820d6287d9f898b5dc8b667c89ca9d.png

    代码注释都有,其实好多东西我都是从其他地方拷贝了一些代码,毕竟是新手,还是需要多向网上的一些大神学习的。

    原理就是引入windows.h,首先是要获得输入的东西,然后通过判断:

    1.方向键:执行上下左右的移动功能

    2:回车键:执行换行的功能。

    3.普通键:输入功能。

    终点就是要获取到屏幕上的坐标,当按下了方向键以后,坐标值+1,或者减一,从而实现了光标的自由移动。

    下面放代码。

    #include

    #include

    #include

    HANDLE hout;

    //获得输入

    char getInput()

    {

    int ch; //输入字符串

    COORD coord; //屏幕上的坐标

    CONSOLE_SCREEN_BUFFER_INFO csbi; //控制台屏幕缓冲区信息

    coord.X=10;

    coord.Y=10;

    ch=getch();

    //0x0d表示回车,0XE0表示上下左右等键的键码

    while(ch==0xE0||ch==0x0d)

    {

    GetConsoleScreenBufferInfo(hout,&csbi);

    coord.X=csbi.dwCursorPosition.X; //得到坐标X的值

    coord.Y=csbi.dwCursorPosition.Y; //得到坐标Y的值

    //如果是回车

    if(ch==0x0d)

    {

    coord.X=0;

    coord.Y++;

    SetConsoleCursorPosition(hout,coord);

    break;

    }

    ch=getch();

    //上

    if(ch==0x48)

    {

    if(coord.Y!=0)coord.Y--;

    }

    //下

    else if(ch==0x50)

    {

    coord.Y++;

    }

    //左

    else if(ch==0x4b)

    {

    if(coord.X!=0){coord.X--;}

    }

    //右

    else if(ch==0x4d)

    {

    if(coord.X!=79)coord.X++;

    else

    {

    coord.X=0;

    coord.Y++;

    }

    }

    SetConsoleCursorPosition(hout,coord);

    ch=getch();

    }

    return ch;

    }

    int main()

    {

    char ch;

    hout=GetStdHandle(STD_OUTPUT_HANDLE);

    //从键盘获取输入,如果是方向键则执行方向功能,如果是回车键则换行,如果是字符则输出

    while(1)

    {

    ch=getInput();

    printf("%c",ch);

    }

    getchar();

    }

    展开全文
  • C语言如何隐藏光标

    千次阅读 多人点赞 2019-05-04 19:42:29
    在用C语言制作动画,游戏或其他需要大量用到清屏指令的程序时,光标会闪烁不停,十分干扰视线,但是只要隐藏光标就可以让体验更佳许多。隐藏光标代码: //定义隐藏光标函数 void HideCursor() { CONSOLE_CURSOR_...

    在用C语言制作动画,游戏或其他需要大量用到清屏指令的程序时,光标会闪烁不停,十分干扰视线,但是只要隐藏光标就可以让体验更佳许多。隐藏光标代码:

    //定义隐藏光标函数
    void HideCursor()
    {
    	CONSOLE_CURSOR_INFO cursor;    
    	cursor.bVisible = FALSE;    
    	cursor.dwSize = sizeof(cursor);    
    	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);    
    	SetConsoleCursorInfo(handle, &cursor);
    }
    
    展开全文
  • #include <stdio.h> ...//隐藏光标 void hidden(){ HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(hOut, &cci); cci.bVisible = F...
  • C语言实现控制台光标任意移动

    万次阅读 多人点赞 2018-03-04 11:05:57
    但是一直还不理解这个代码的含义,特别是关于Windows的编程,句柄啦,控制台屏幕缓冲区啦,很多知识都很陌生,特别是对句柄的理解,有点吃力。关于句柄,这篇博客写的挺详细的:...
  • 这个游戏是我大一上学期弄出来,刚学C语言,学了循环和选择结构。那时候数据结构都不太会,但是按捺不住自己的想法,总想用现有的东西做点什么。 就连窗体程序都不会,没有任何的...说到C语言控制台游戏,你可能想到的
  • C语言控制台设置光标

    千次阅读 2018-07-25 14:07:05
    类似贪吃蛇之类的一些游戏能够在将光标移动到任意位置,如何实现? #include&lt;iostream&gt; #include&lt;windows.h&gt; #pragma comment(lib,"user32.lib") using namespace std; ...
  • C语言实现控制台光标随意移动

    千次阅读 2014-09-10 17:11:00
    今天弄了个控制台程序,光标可以随意在DOS下移动~~ 先放一张效果图,不过很丑,大家能不能看懂,哈哈,就是 I Love You.   代码注释都有,其实好多东西我都是从其他地方拷贝了一些代码,毕竟是新手,还是需要...
  • 本系列文章改编自《C语言控制台窗口界面编程(修正版)》。本系列文章会抛弃一些原文中难懂难理解且不常用的部分,并修改了部分样例程序。只为了更加清晰地学习C语言的控制台窗口界面编程。而想要更加深入的了解本系列...
  • C语言控制台窗口界面编程 文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。然而,Visual C++的C++专用库却没有TC所支持的文本(字符)屏幕控制函数,为此本系列文章从一般...
  • */ #include /* 包含Windows平台上完成设定输出光标位置达到清屏功能的函数 */ void start_game(); /* 开始游戏 */ void reset_game(); /* 重置游戏 */ /* 往左右上下四个方向移动 */ void move_left(); ...
  • C语言编程——控制台程序光标控制

    千次阅读 多人点赞 2013-11-02 14:54:21
    对于C语言的初学者,基本上只能写一些控制台程序。然而有时候会涉及一些对光标的简单操作,现在一般都是用的VC++6.0,不再支持以前TC中的wherex、wherey、gotoxy等函数了,那么在VC中该怎样做呢?接下来,我就简单讲...
  • C语言控制台命令

    2020-01-08 20:04:01
    转载自:"\x1b[2K",//清除光标所在行的所有字符 //屏幕属性命令,23 "\x1b[12h",//禁止本端回显,键盘数据仅送给主机 "\x1b[12l",//允许本端回显,键盘数据送给主机和屏幕 "\x1b[?5h",//屏幕显示为白底黑字 ...
  • 贪吃蛇—C语言控制台简单实现

    千次阅读 2021-01-13 23:22:35
    贪吃蛇—C语言控制台简单实现模块拆分蛇身及蛇身打印蛇身的移动(重点)判定死亡生成目标吃到目标后加长模块整合完整代码 模块拆分 蛇身及蛇身打印 这里我采用的是结构体数组来储存蛇身信息,包含x,y坐标。当然也...
  • C语言控制台贪吃蛇

    千次阅读 2017-03-23 22:51:30
    ///////////////设置光标位置//////////////////////// /////////////////////////////////////////////////// void GotoXY(int x, int y) { COORD c; c.X = x - 1; c.Y = y - 1; SetConsoleCursorPosition...
  • 下面小编就为大家带来一篇C语言之实现控制台光标随意移动的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 控制台窗口的光标的位置反映的是当前输入字符的插入位置
  • C语言控制台设置

    千次阅读 2019-04-16 18:30:26
    光标设置 利用SetConsoleCursorPosition函数可以达到设置光标位置的目的 函数原型 BOOL SetConsoleCursorPosition(HANDLE hOut,COORD pos); 参数 hOut 目标窗口的句柄 pos pos 是一个 COOND 类型的结构体变量,...
  • C语言控制台窗口图形界面编程

    万次阅读 多人点赞 2017-03-26 13:05:25
    下面介绍几个用于控制台窗口操作的API函数,如下: [cpp] view plain copy   //获取控制台窗口信息  GetConsoleScreenBufferInfo();    //获取控制台窗口标题  GetConsoleTitle();    //更改指定...
  • C语言printf格式化控制台移动光标

    千次阅读 2018-02-08 10:06:05
    C控制台的程序,用printf输出进度显示的时候,只是进度的数值变化这样比较好看,这在C语言里面有一个'\r'表示回车,就是光标移动到行首,再进行输出,这样就能到达效果。printf("process %4d \r", process...
  • // StudentManagement.cpp : 定义控制台应用程序的入口点。 // #include <stdio.h> #include<iostream> #include<vector> using namespace std; struct tagStudent { int nID; int nGender; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,002
精华内容 1,600
关键字:

c语言控制台隐藏光标

c语言 订阅