VC++中控制光标的移动

VC++中控制光标的移动

 

在TuborC中它的头文件conio.h里边有函数gotoxy()的定义。

然而在VisualC++环境中,头文件conio.h并没有gotoxy()函数。

那么在VC++中可以控制光标的移动吗?怎样实现?这个可以用SetConsoleCursorPosition函数实现,其头文件是windows.h,头文件写#include <windows.h>。
例如:
COORD pos = {10, 20};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);

其中COORD英文意思是坐标,坐标的,例如:地理坐标 coordinate。
如果用户定义了COORD pos,那么pos其实是一个 结构体 变量 ,其中X和Y是它的成员,通过修改pos.X和pos.Y的值就可以实现 光标 的位置控制。

 

以下这是VC中自己定义gotoxy函数的源代码,直接根据自己的需要修改使用就行了,要包含头文件#include<windows.h>。

#include <iostream>
#include <windows.h> 
using namespace std;
void gotoxy(int x, int y) //goto语句
{
	COORD pos;
	pos.X = x - 1;
	pos.Y = y - 1;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
} 
int main()
{
	gotoxy(15,6);
	cout<<"I'm here!";
	gotoxy(5,5);
	cout<<"I'm here!";
	return 0;
}


以上代码调试结果:

VC++中控制光标的移动_第1张图片

 

 

VC中设置文本颜色和背景

 

SetConsoleTextAttribute是API设置字体颜色和背景色的函数。

 

#include <iostream>
#include <windows.h>
using namespace std;
int main(void)
{
	HANDLE consolehwnd; //创建句柄,详细句柄知识,请百度一下或查MSDN
	consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄
	SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);//设置字体颜色
	cout<<"hello ";
	SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY | FOREGROUND_GREEN);
	cout<<"world!\n";
	SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY |BACKGROUND_BLUE);
	cout<<"It is really beautiful!\n";
	return 0;
}



 运行结果:

VC++中控制光标的移动_第2张图片

 

你可能感兴趣的:(VC,光标移动,VisualC++)