C++ 控制台居中输出
思路:首先获取控制台屏幕缓冲区大小,再获取要输出的字符串的长度,到这里基本上就完成了,最后再移动光标到目标区域并输出,就大功告成了。
- 获取控制台屏幕缓冲区大小
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo(hOutput, &bInfo);
int dwSizeX=bInfo.dwSize.X,dwSizey=bInfo.dwSize.Y;
- 获取要输出的字符串的长度
int len=strlen(str);
- 移动光标到目标区域
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hOut, pos);
完整代码
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void gotoxy(HANDLE hOut, int x, int y)
{
COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition(hOut, pos);
}
void middle(char str[],int y)
{
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo(hOutput, &bInfo);
int dwSizeX=bInfo.dwSize.X,dwSizey=bInfo.dwSize.Y;
int len=strlen(str);
int x=dwSizeX/2-len/2;
gotoxy(hOutput,x,y);
cout<<str;
}
int main()
{
char str[100];
int y;
cin>>str>>y;
middle(str,y);
return 0;
}
备注:本人不能保证该文章和该文章中的代码无错误、无缺陷,请自行判断后使用。如遇到问题请联系本人。转载请标明出处。
|