[控制台(8)] 设置控制台输出的光标位置[TZZ]

 时间:2024-10-19 23:26:08

大家好!今天我给大家介绍一下“在Windows控遄咿湫幼制台中,通过程序设置标准输出缓存下次输出位置(即光标位置)的方法”。Windows控制台中通过犴鲻嗵聒光标(由COORD结构表示)来定位输出缓存中的输出开始位置,即总是从当前光标所在位置开始打印字符。如果您觉得这篇教程有帮助,请为我投上宝贵的一票(顺便求个关注),谢谢!

工具/原料

已安装VisualStudio2017(或以上版本);

已安装VS2017中的帮助文档(ViewHelper);

已掌握“[控制台(3)]查看控制台屏幕缓存信息[TZZ]”;

方法/步骤

1、打开VS2017,新建一个“Windows控制台应用程序”项目,然后将其命名为“ConsoleDemo8”;

2、在打开的“ConsoleDemo8.cpp”文件中,包含Windows.h头文件。勾袖稣拗然后,在main函数中调用system函数暂停程序执行。框架代码添加完毕后,调试执行程序。在睫撮槐攻弹出的控制台窗口中,你可以见到“请按任意键继续…”右侧闪烁的光标,那就是控制台光标,下一个字符将从光标处开始显示。打开控制台窗口属性,在“选项”页面中,可以设置光标大小,即光标所占用的字符单元格高度的百分比,从1~100;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

[控制台(8)] 设置控制台输出的光标位置[TZZ]

[控制台(8)] 设置控制台输出的光标位置[TZZ]

3、结束控制台程序,返回到main函数中,添加“获取控制台光标信息”的测试代码。然后调试运行程序。在这份测试代码中,通过WindowsAPI函数GetConsoleCursorInfo获取标准输出缓冲区中的光标信息,然后将获取到的内容输出;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

4、在弹出的控制台窗口中,可以见到输出的控制台光标信息。光标高度占字符单元格的25%,并且处于显示状态。如果此时修改窗口属性中的光标大小,那么控制台中的光标高度将发生变化;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

5、结束控制台程序,返回到main函数中。继续添加“禁用控制台光标”的测试代码,然后调试运行程序。在Windows中,设置控制台输出缓存的光标信息,可以通过SetConsoleCursorInfo函数实现;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

6、在弹出的控制台窗口中,你会发现之前见到过的光标已经消失了,表示代码执行成功;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

7、结束控制台程序,返回到main函数中。继续增加“将光标设置为最高”的测试代码。然后调试运行程序。在弹出的控制台窗口中,你会发现光标已经占据了整个字符单元格的高度;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

[控制台(8)] 设置控制台输出的光标位置[TZZ]

8、结束控制台程序,返回到main函数中。继欹爸葛端续添加“设置光标插入位置”的测试程序。然后调试运行程序。这里需要注意,调用SetConsoleCursorPosition函数设置光标位置时,其坐标醐蛑臀谁位置采用笛卡尔坐标系,但是每个坐标值对应的则是缓冲区的字符单元格位置,并非窗口中显示采用的像素位置;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

9、在弹出的控制台窗口中,你会发现输出的内容,出现在了(10,10)字符单元格的位置。虽然打印的“请按任意键继续…”则从横坐标0的位置开始输出;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

10、结束控制台程序,返回到main函数中。可以通过WindowsAPI函数Sleep(让代码暂停XXX毫秒再执行)和while循环,实现数字倒计时功能。测试代码编写完毕后,调试运行程序。在弹出的控制台中,你可以见到动态的变化的倒计时数字;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

[控制台(8)] 设置控制台输出的光标位置[TZZ]

11、结束控制台程序,返回到main函数中。继欹爸葛端续添加“动态清空屏幕内容”的测试代码。然后调试运行程序。在这份代码中,通过GetConsoleScreenBufferInfo函数得到当前控制台窗口鹚兢尖睁的大小。然后通过双层for循环,不断的调整光标位置并输出一个由空格开始的字符蜗牛。之所以由空格开始,是为了在下次输出时,能够清空(覆盖)前一个单元格的内容;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

12、在弹出的控制台窗口中,你会见到一个不断从左边出现,然后移动到右边的字符蜗牛。当程序执行完毕后,会在控制台输出缓存的下一行输出一个蜗牛,并打印“请按任意键继续…”。之所以会多出一行,是因为当控制台中输出的内容超出行宽时,它会自动切换到下一行进行输出;

[控制台(8)] 设置控制台输出的光标位置[TZZ]

[控制台(8)] 设置控制台输出的光标位置[TZZ]

13、至此,通过代码设置控制台中的光标位置的代码就介绍完毕了。如果您希望学到更多实用的编程知识,就请关注我吧!Enjoy!

传感器确定拟合直线的方法 Word文档里面如何输入不等号? Mathematica 二项分布及其性质 matlab最小二程拟合线如何绘制 用Mathematica旋转3D图形——ViewPoint用法
热门搜索
色图片 孔雀图片 死神图片 玫瑰糠疹图片 银杏树图片