当前位置: 首页 > news >正文

编程培训心得优化公司结构

编程培训心得,优化公司结构,北京软件开发招聘信息,wordpress加实时时间目录 什么是 SetConsoleCursorPosition? 它长什么样? 什么是 COORD? 怎么用它? 它有什么用? 跟 C 标准库有什么不一样? 注意事项 再试一个有趣的例子 什么是 SetConsoleCursorPosition?…

目录

什么是 SetConsoleCursorPosition?

它长什么样?

什么是 COORD?

怎么用它?

它有什么用?

跟 C++ 标准库有什么不一样?

注意事项

再试一个有趣的例子

什么是 SetConsoleCursorPosition?

SetConsoleCursorPosition 是一个 Windows API 函数,用来移动控制台的光标位置。你可以把它想成一个遥控器,告诉屏幕上的那个闪烁小光标(就是输入文字时跳动的那个小线):“嘿,去这个位置等着!”

在控制台程序里,默认情况下,光标会随着你输入或输出的文字自动移动。但如果你想自己控制它,比如让文字出现在屏幕的特定位置(像画图或做游戏那样),就需要用这个函数。

它长什么样?

  • Set:表示设置(改变)某个值或状态。

  • Console:指的是控制台,即 Windows 终端窗口。

  • Cursor:指的是光标,在控制台中,光标表示当前输入或输出的文本位置。

  • Position:指的是位置,即光标所在的坐标。

在代码里,SetConsoleCursorPosition 是这样的:

BOOL SetConsoleCursorPosition(HANDLE hConsoleOutput,    // 屏幕的“钥匙”COORD dwCursorPosition    // 光标要去的地方
);
  • HANDLE hConsoleOutput: 这是你用 GetStdHandle(STD_OUTPUT_HANDLE) 拿到的屏幕钥匙。

  • COORD dwCursorPosition: 一个坐标,告诉函数光标要去哪里。COORD 是一个小结构体,包含 X(水平位置)和 Y(垂直位置)。

  • 返回值是 BOOL:成功返回 TRUE,失败返回 FALSE。

什么是 COORD?

COORD 是一个 Windows 定义的小东西,长这样:

typedef struct _COORD {SHORT X; // 横坐标(列号,从 0 开始)SHORT Y; // 纵坐标(行号,从 0 开始)
} COORD;
  • X 是列号,从左到右数(0 是最左边)。

  • Y 是行号,从上到下数(0 是最上面)。

怎么用它?

假设你想把光标移动到第 5 行、第 10 列,然后在那里写“Hello”,可以这样做:

#include <windows.h>int main() {// 1. 拿到屏幕的“钥匙”HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);if (screen == INVALID_HANDLE_VALUE) {return 1; // 钥匙坏了,退出}// 2. 设置光标要去的地方COORD position;    // 准备一个坐标position.X = 10;   // 第 10 列position.Y = 5;    // 第 5 行// 3. 移动光标SetConsoleCursorPosition(screen, position);// 4. 在新位置写东西const char* message = "Hello";DWORD written;WriteConsoleA(screen, message, strlen(message), &written, NULL);return 0;
}

一步步解释:

  1. 拿到钥匙:

    • 用 GetStdHandle(STD_OUTPUT_HANDLE) 拿到屏幕的钥匙,存在 screen 里。

  2. 准备坐标:

    • COORD position 是一个坐标变量。

    • position.X = 10 表示光标移到第 10 列(从左边数第 11 个位置,因为从 0 开始)。

    • position.Y = 5 表示光标移到第 5 行(从顶部数第 6 行)。

  3. 移动光标:

    • SetConsoleCursorPosition(screen, position) 用屏幕钥匙把光标送到指定位置。

  4. 写东西:

    • 用 WriteConsoleA 在光标的新位置写下“Hello”。

运行这个程序,你会看到“Hello”出现在控制台的第 5 行、第 10 列,而不是默认的左上角。

它有什么用?

  • 控制输出位置:比如你想在屏幕上画一个表格,或者让文字跳来跳去。

  • 做小游戏:像贪吃蛇、俄罗斯方块这种控制台游戏,需要不停移动光标来更新画面。

  • 美化界面:让你的程序看起来更有条理,而不是全挤在左上角。

跟 C++ 标准库有什么不一样?

C++ 的 std::cout 没法直接控制光标位置。如果你用 std::cout << "Hello";,文字会紧接着上一次输出的地方出现,想跳到别的地方得靠一些奇怪的办法(比如输出很多空格或换行)。而 SetConsoleCursorPosition 让你直接“遥控”光标,想去哪就去哪。

注意事项

  1. 屏幕大小:

    • 控制台有边界(默认可能是 80 列 × 25 行,具体看你的设置)。如果 X 或 Y 超出范围,函数会失败。

    • 比如,设 position.X = 100 而你的屏幕只有 80 列,就会出错。

  2. 检查返回值:

    • 最好检查一下是否成功:

if (!SetConsoleCursorPosition(screen, position)) {return 1; // 出错了
}

     3.光标不会自动回来:

  • 移动光标后,下次输出会从新位置开始,不会自动回到左上角。

再试一个有趣的例子

我们让光标跳来跳去,写几个单词:

#include <windows.h>int main() {HANDLE screen = GetStdHandle(STD_OUTPUT_HANDLE);if (screen == INVALID_HANDLE_VALUE) {return 1;}COORD pos;DWORD written;// 在 (5, 2) 写 "Top"pos.X = 5; pos.Y = 2;SetConsoleCursorPosition(screen, pos);WriteConsoleA(screen, "Top", 3, &written, NULL);// 在 (10, 5) 写 "Middle"pos.X = 10; pos.Y = 5;SetConsoleCursorPosition(screen, pos);WriteConsoleA(screen, "Middle", 6, &written, NULL);// 在 (2, 8) 写 "Bottom"pos.X = 2; pos.Y = 8;SetConsoleCursorPosition(screen, pos);WriteConsoleA(screen, "Bottom", 6, &written, NULL);return 0;
}

运行后,你会看到“Top”、“Middle”、“Bottom”出现在控制台的不同位置,像个小布局。 

http://www.hkea.cn/news/944727/

相关文章:

  • 网站怎么做网站地图重庆网站制作公司哪家好
  • wordpress改地址后打不开seo品牌优化整站优化
  • 网页设计师证书含金量高吗百度网络优化
  • 咸阳网站开发长沙seo优化公司
  • 网站通cms国内十大搜索引擎排名
  • centos7安装 wordpress网站如何进行seo
  • 设计师灵感网站美国今天刚刚发生的新闻
  • 重庆南岸营销型网站建设公司推荐竞价sem托管
  • 深圳做二维码网站建设什么是互联网营销
  • 网易企业邮箱收费标准百色seo关键词优化公司
  • 做网站的财务需求张北网站seo
  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描
  • 域控制网站访问自媒体视频发布平台
  • 广西住房和城乡建设委员会网站湖南网站营销seo多少费用
  • 关键词推广名词解释百度竞价关键词怎么优化
  • 群辉服务器做网站网络优化的内容包括哪些
  • 做淘客的网站岳阳seo
  • 网吧设计方案seox
  • 谁做网站市场营销专业
  • 慈溪外贸公司网站网络营销就业前景和薪水
  • 电商网站建设实训报告长沙网站seo推广公司
  • 阿里云ecs怎么建网站吉林网站seo