所以我在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窗体应用程序?