C++ 控制台居中输出

C++ 控制台居中输出

思路:首先获取控制台屏幕缓冲区大小,再获取要输出的字符串的长度,到这里基本上就完成了,最后再移动光标到目标区域并输出,就大功告成了。

  1. 获取控制台屏幕缓冲区大小
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bInfo;
GetConsoleScreenBufferInfo(hOutput, &bInfo);
int dwSizeX=bInfo.dwSize.X,dwSizey=bInfo.dwSize.Y;
  1. 获取要输出的字符串的长度
int len=strlen(str);
  1. 移动光标到目标区域
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;
}

效果

备注:本人不能保证该文章和该文章中的代码无错误、无缺陷,请自行判断后使用。如遇到问题请联系本人。转载请标明出处。

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值