4

所以我在大学里学习了一些关于 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% 肯定的

4

2 回答 2

4

你可以#include <windows.h>打电话GetConsoleScreenBufferInfo。要使用它,您需要标准输出流的 Windows 句柄,您可以使用GetStdHandle.

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

于 2014-10-09T03:56:59.947 回答
0

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

于 2014-10-09T04:04:56.397 回答