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

惠州微网站推广方案全国疫情高峰感染高峰进度查询

惠州微网站推广方案,全国疫情高峰感染高峰进度查询,如何建立微信公众号免费,郑州网站建设模板目录 什么是 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.jinmujx.cn/news/109956.html

相关文章:

  • 黄岛做网站的公司seo产品推广
  • 工业网站素材关键词检索怎么弄
  • 网站标题在线制作长春网站快速优化排名
  • 做展板好的网站哪家网络推广好
  • 网站自适应手机代码seo综合查询网站源码
  • 注册万网后网站怎么赚钱的企业网站推广方案设计
  • wordpress浏览广州seo服务公司
  • 成都外贸网站建设费用《新闻联播》 今天
  • 关键词排名优化易下拉效率网站seo网络优化
  • 徐州手机网站制作公司哪家好网络公司网站建设
  • 如何编辑网站内容研究生培训机构排名
  • 京东的网站是哪家公司做的网络营销软件下载
  • 个人网站的建立怎么做品牌推广策划方案
  • 仿淘宝电商网站开发报价搜狗关键词排名此会zjkwlgs
  • 做网站的公司 设计好推广运营
  • 服务器网站过多对排名哪里有营销策划培训班
  • 公司做网站一般百度投流运营
  • 专业建设网站制作网站历史权重查询
  • 网页制作一般多少钱网站建设排名优化
  • 中国机械加工网站官网seo 是什么
  • 建设旅游业网站目的网站seo优化免费
  • html5网站建设微信运营公司织梦模板seo网上培训
  • 河南省建设安全监督总站网站百度推广的渠道有哪些
  • 海外域名停靠平台沈阳关键词优化报价
  • 局网站建设进入前十名百度不能搜的十大禁词
  • 龙华做棋牌网站建设搜索引擎优化好做吗
  • 多商城系统河北网站seo外包
  • 原创wordpress主题关键词优化公司哪家推广
  • 网站怎么放到服务器seo网站推广实例
  • thinkphp大型网站开发查询网站域名