提问人:EasyBB 提问时间:10/9/2014 最后编辑:Eryk SunEasyBB 更新时间:10/9/2014 访问量:18681
C++ 控制台屏幕大小
c++ console screen size
问:
所以我在大学里学习了一些关于C++的东西,我和老师讨论了如何将文本居中到输出屏幕。所以我的建议是使用但获取字符串的长度和控制台屏幕的长度,做算法和 BAM,我们有真正居中的文本。他说屏幕大小是,但屏幕可以调整大小,无论输出居中,用户开始调整大小都是行不通的。我只是一个小问题,如何获得控制台屏幕的实际尺寸?setw
size
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赞
Jerry Coffin
10/9/2014
#1
可以调用 GetConsoleScreenBufferInfo
。若要使用它,需要标准输出流的 Windows 句柄,可以使用 GetStdHandle
检索该句柄。#include <windows.h>
请注意,生成的代码将是特定于 Windows 的(而您当前的代码是可移植的,因此它应该可以在 Linux、Mac OS、*BSD 等上运行良好)
评论
0赞
EasyBB
10/9/2014
是的,但是如果我们要使代码模块化,那么我们就不会想要 Windows 库。有什么黑客吗?也许输出一个空的空格字符串,看看有多少个,直到中断?
0赞
EasyBB
10/9/2014
添加了一个更新,我认为如果它实际上是 C++ 会很好
2赞
Benilda Key
10/9/2014
SetConsoleWindowInfo 函数也应是解决方案的一部分。
0赞
Jerry Coffin
10/9/2014
@BenKey:是的,不幸的是,你最终不得不使用相当多的控制台功能。
0赞
user3882772
10/9/2014
#2
我发现不可能使控制台应用程序窗口大于屏幕的一半以上,就像 cmd(命令提示符)一样。我只是警告你,如果你不能手动将它调整为你想要的任何大小,你可能无法调整它的大小。也许您想尝试 Windows 应用程序或 Windows 窗体应用程序?
评论
1赞
Benilda Key
10/9/2014
这是不正确的。只需按 Alt + 空格键即可调出系统菜单。然后打开“属性”对话框。您可以在“布局”窗格上调整窗口大小。这可以使用 GetConsoleScreenBufferInfo 和 SetConsoleWindowInfo 函数以编程方式完成。
评论