c ++控制台屏幕大小

时间:2014-10-09 03:51:41

标签: c++ windows console iostream setw

所以我在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%肯定的

2 个答案:

答案 0 :(得分:4)

您可#include <windows.h>并致电GetConsoleScreenBufferInfo。要使用此功能,您需要一个标准输出流的Windows句柄,您可以使用GetStdHandle检索该句柄。

请注意,生成的代码将是特定于Windows的(而您当前的代码是可移植的,因此它应该在Linux,Mac OS,* BSD等上正常运行。)

答案 1 :(得分:0)

我发现让控制台应用程序窗口大于屏幕的一半以上是不可能的,就像cmd(命令提示符)一样。我只是警告你,如果你不能手动将其调整到你想要的大小,你可能无法调整大小。也许您想尝试Windows应用程序或Windows窗体应用程序?