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。
以下这是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中设置文本颜色和背景
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;
}
运行结果: