c ++控制台的屏幕大小

所以我在C ++大学学习了一些东西,老师和我讨论了如何将文本实际放在输出屏幕上。 所以我的build议是使用setw但得到string的长度和控制台size ,做algorithm和BAM我们真正居中文本。 他说屏幕尺寸是80但是屏幕可以resize,不pipe输出是否居中,用户开始resize都不起作用。 只是我有一个小问题,如何获得控制台屏幕的实际大小?

 #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"); 

这样做是为了确保我的尺寸是我想要的吗? 只是通读它,所以我不是100%正面,如果这实际上是一个C ++库

你可以#include <windows.h>并调用GetConsoleScreenBufferInfo 。 要使用这个,你需要一个Windows句柄给你的标准输出流,你可以使用GetStdHandle来获取GetStdHandle

请注意,由此产生的代码将是特定于Windows的(而目前的代码是可移植的,所以它应该在Linux,Mac OS,* BSD等上运行良好)

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