所以我在C ++大学学习一些东西,老师和我讨论了如何将文本实际中心到输出屏幕。所以我的建议是使用setw
但是得到字符串的长度和控制台屏幕的size
,做算法和BAM我们有真正的居中文本。他说屏幕尺寸为80
,但屏幕可以调整大小,无论输出是否居中,用户开始调整大小,都无法正常工作。我只是一个小问题,如何获得控制台屏幕的实际大小?
#include <iostream>
#include <string>
using namespace std;
const int SCR_SIZE = 80;//some way of telling size
int main(){
string randomText = "Hello User!";
cout << setw( ( (80 / 2) + (randomText.length() / 2 ) ) )
<< randomText
<< endl;
return 0;
}
搜索了一下,发现了这一点
#include <cstdlib>
system("MODE CON COLS=25 LINES=22");
是否可以将其设置为执行以确保我的尺寸符合我的要求?只需仔细阅读即可,如果事实上是c ++库那么我不是100%肯定的
答案 0 :(得分:4)
您可#include <windows.h>
并致电GetConsoleScreenBufferInfo
。要使用此功能,您需要一个标准输出流的Windows句柄,您可以使用GetStdHandle
检索该句柄。
请注意,生成的代码将是特定于Windows的(而您当前的代码是可移植的,因此它应该在Linux,Mac OS,* BSD等上正常运行。)
答案 1 :(得分:0)
我发现让控制台应用程序窗口大于屏幕的一半以上是不可能的,就像cmd(命令提示符)一样。我只是警告你,如果你不能手动将其调整到你想要的大小,你可能无法调整大小。也许您想尝试Windows应用程序或Windows窗体应用程序?