目录:

  • 1、坐标函数的定义和使用
  • 2、坐标函数各部分释义
  • 3、坐标函数的特点和灵活运用

1、坐标函数的定义和使用

其实C中没有这个坐标函数,所以要自己定义,而自己定义就不一定叫gotoxy(),moveto()或position()等等自己起什么名字都可以。

首先是嵌入相关头文件的指令:#include<windows.h>
然后在主函数外定义此坐标函数,像这样:

void gotoxy(int x,int y)
{COORD p ;p.X=x;p.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}

void gotoxy(int x,int y)
{COORD p={x,y};//p是一个结构体可这样赋值,有的编译器可能报错但可以运行。SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}

void gotoxy(int x, int y)
{COORD pos;HANDLE output;pos.X = x;pos.Y = y;output = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(output, pos);
}

最后在主函数内再声明一下就行了,如:

#include<stdio.h>
#include<windows.h>
int main()
{int i=5;void gotoxy(int x,int y);//主函数内声明函数。gotoxy(1,4);printf("%d",i);gotoxy(1,i);printf("%d",i);return 0;
}
void gotoxy(int x,int y)
{COORD p ;p.X=x-1;p.Y=y-1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}

或者主函数内不声明也行,把坐标函数放到主函数前面,如:

#include<stdio.h>
#include<windows.h>
void gotoxy(int x,int y)
{COORD p ;p.X=x-1;p.Y=y-1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
int main()
{int i=5;gotoxy(4,4);printf("%d",i);gotoxy(i,i);printf("%d",i);return 0;
}

2、坐标函数各部分释义

整个gotoxy()函数涉及两个数据类型类型和两个函数:

1、COORD是Windows API中定义的一种结构。其实就是一种用结构体定义的数据类型,内含两个X、Y用来表示坐标。

2、HANDLE是一个通用句柄表示。(句柄是什么大家有兴趣的可以自行去了解)

3、GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄,参数可以是以下值之一:

含义
STD_INPUT_HANDLE 标准输入的句柄
STD_OUTPUT_HANDLE 标准输出的句柄
STD_ERROR_HANDLE 标准错误的句柄

4、SetConsoleCursorPosition是API中的函数,作用是定位光标位置。SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);语句的意思就是:定位光标位置的函数,坐标为GetStdHandle()返回标准的输出的句柄,也就是获得输出屏幕缓冲区的句柄,并赋值给对象p。

3、坐标函数的特点和灵活运用

    COORD p ;p.X=x;p.Y=y;

其中p.X是横坐标,方向向右;p.Y是纵坐标,方向向下。gotoxy(0,0)就表示左上角的开头位置。

如果这样定义:

    COORD p ;p.X=x-1;p.Y=y-1;

输入gotox(1,1),就转换为p.X=0,p.Y=0,还是表示开头位置。

如果配合二维数组使用,可以交换x、y位置,如:

    COORD p ;p.X=y;p.Y=x;

输入gotoxy(i,j)就可以很好对应相应数组的位置。

如何在C/C++中定义坐标函数gotoxy()并灵活运用之相关推荐

  1. 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...

    如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...

  2. c语言 引用定义变量,如何在c语言中定义及引用全局变量?

    如何在c语言中定义及引用全局变量? 答案:5  信息版本:手机版 解决时间 2019-10-03 10:30 已解决 2019-10-02 15:19 如何在c语言中定义及引用全局变量? 最佳答案 2 ...

  3. 如何在shell脚本中定义数组及遍历

    问题起源:脚本中定义多个监控模块,代码重复率高,仅仅模块名不同,所以思考如何精简代码? 1.如何定义数组及访问数组: var=(1 2 3 4 5) var=(a b c d e) var=('1' ...

  4. Android在string.xml中定义html文档并加载显示,以及拦截WebView链接事件

    一.如何在string.xml中定义html文档 首先最好自己在外部新建一个html文件,然后开始写自己的内容.并且在浏览器中预览效果. 首先预先编写一个简单的html文档: <html> ...

  5. mavlink协议_MAVLink学习之路03_XML中定义MSG并生成C代码

    说明: 本文原创作者『strongerHuang』 首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop 一.写在前面 如果你前面两篇文章掌握了,说明你已经入门了. ...

  6. 如何在xaml文件中操作用户在后台代码定义的类(1)

    本文主要示例如何在xaml文件中操作用户使用C#代码自定义的类.主要步骤如下: 1.在VS2008中创建一个新项目CustomTypesInXaml,在此项目下我们新建两个类,一个是Client类,一 ...

  7. python中变量名有哪些_Python变量范围有哪些?如何在Python中定义变量?

    Python变量范围有哪些?如何在Python中定义变量?在Python编程语言中,变量的范围是该变量可见或可访问的那段代码.更准确地说,不是每个程序的每个部分都可以访问所有变量.而且,有时范围也是持 ...

  8. php如何定义和使用常量,如何在PHP中定义和使用常量

    开发的时候,我们经常会把很多值定义成常量进行编写,但是这要怎么添加符号呢?今天爱站技术频道给大家具体介绍如何在PHP中定义和使用常量,一起进入下文学习吧! 1.自定义常量 * 必须用函数define( ...

  9. SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)...

    本文将示例如何运用前篇所写知识来建立一个用户自定义的登录控件.此控件界面非常简单,主要涉及的知识点是:   如何创建用户控件(包括对此控件的自定义事件和属性的编写,此处我们将创建一个名为LoginBo ...

最新文章

  1. DetNAS ThunderNet
  2. 使用图形工具管理Server Core上的账号和组
  3. 【EventBus】EventBus 源码解析 ( 取消订阅 )
  4. 国货之光业务增长背后的技术支持 - 完美日记的云原生实践
  5. python爬虫学习第一章
  6. 你懂change buffer吗
  7. 1082 与7无关的数(思维题,巨坑)
  8. django-用户文件的上传-后台上传
  9. wireshark linux远程,如何在SSH连接Linux的环境下使用wireshark抓包云边端架构?
  10. node(基础)_node中的javascript
  11. 华为今年不发布Mate系列新机;一加宣布与OPPO合并:将成为OPPO旗下独立品牌;Gradle 7.1 发布|极客头条...
  12. 数据在本地文件的写入和读取
  13. thinkphp --- 写入日志
  14. API 函数 MultiByteToWideChar 实现各类编码转换
  15. jQuery第六章课后作业
  16. 安卓游戏广告加速插件_游戏加速器(强烈推荐!)[PC+安卓]
  17. 数学分析(卓里奇)学习笔记001
  18. 【MySQL】MySQL有几种锁
  19. 华为S5700交换机配置 不同vlan 间通信---eNSP
  20. 20190904携程机试

热门文章

  1. eclipse添加约束文件 dubbo配置报错 dubbo.sxd
  2. Visual Studio Code安装中文插件
  3. 五十步笑百步翻译软件测试,“禹、稷当平世”“五十步笑百步”阅读答案及翻译...
  4. 全球顶级汽车品牌邮件营销设计精选
  5. 活动(Activity)详解
  6. 定了,2022年世乒赛落户成都!刘国梁立功!国乒4世界冠军出镜
  7. OPPO R11s首销火爆 时尚设计新潮流获年轻人追捧
  8. php检测目标服务器是否宕机_Docker卸载镜像
  9. 【VSCode Git】stage和stash的区别
  10. 用java做一个超级马里奥的小游戏