跳转到通过输入坐标定义的控制台屏幕位置
Jump to console screen position defined by entering coordinate
我有一个简单的控制台应用程序,使用Codeblocks c++ IDE创建。我想通过输入坐标将光标跳到任何屏幕位置。如何实现?
您可以使用 Windows Console API 中的函数。 为此,您只需要包含 windows.h 标头。
SetConsoleCursorPosition( HANDLE,COORD (应该可以解决问题。
查看Microsoft 文档中的文档。
下面是一个演示示例:
#include<iostream>
#include<windows.h>
#include<cstdio>
using namespace std;
void changeCursor( int columnPos, int rowPos )
{
HANDLE handle; /// A HANDLE TO CONSOLE SCREEN BUFFER
/// COORD STRUCTURE CONTAINS THE COLUMN AND ROW
/// OF SCREEN BUFFER CHARACTER CELL
COORD coord;
coord.X = columnPos;
coord.Y = rowPos;
/// RETURNS A HANDLE TO THE SPECIFIED DEVICE.
handle = GetStdHandle(STD_OUTPUT_HANDLE); /// STD_OUTPUT_HANDLE MEANS STANDARD
/// OUTPUT DEVICE(console screen buffer)
SetConsoleCursorPosition( handle,coord ); /// SETS CURSOR POSITION IN SPECIFIED
/// CONSOLE SCREEN BUFFER
}
int main()
{
int xCoord,yCoord;
cout<<"Lorem Ipsum is simply dummy text of nthe printing and typesetting industry.nLorem Ipsum has been the industry's standard ndummy text ever since the 1500.";
cout<<endl<<endl<<"Coordinates of Column and Row(zero indexed): ";
cin>>xCoord>>yCoord;
getchar();
changeCursor(xCoord,yCoord); /// YOUR FUNCTION TO SET NEW CURSOR
getchar(); /// KEEP THE CONSOLE FROM TERMINATING
return 0;
}
输出:
Lorem Ipsum is simply dummy text of
the printing and typesetting industry.
Lor*e*m Ipsum has been the industry's standard
dummy text ever since the 1500.
Coordinates of Column and Row(zero indexed): 3 2
请注意,此处需要从左上角位置(即控制台屏幕的 (0,0( 位置(测量坐标。
X ,Y 值是字符位置,因为它们指向屏幕缓冲区字符单元格。
请参阅此处具有指定光标位置的示例输出。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 部分定义/别名模板模板参数
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- #为""定义宏;静态";针对不同的上下文
- C++:将控制台输出存储在宏中更好吗
- 如何确保C++函数在定义之前声明(如override关键字)
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 跳转到通过输入坐标定义的控制台屏幕位置
- C++自定义控制台类 - 如何处理运算符未重载"<<"的对象?
- 在 qt 控制台应用程序中未定义对 'vtable for myObj' 的引用 - 信号和插槽
- 如何在不闪烁的情况下以自定义大小启动控制台
- 如何在 c++ Windows 控制台应用中以用户定义的格式打印日期时间
- 在代码中定义字符串与控制台输入之间的区别
- 在窗口中重新定义 C++ 控制台应用中'pause'行为
- 如何在Windows控制台中将数据输出到自定义流(3>4>等)?
- 自定义应用程序控制台和stderr
- 自定义C++ cout 类 - 输出到控制台和日志文件