gpt4 book ai didi

c++ - 如何将输出对齐到屏幕中心 - C++?

转载 作者:可可西里 更新时间:2023-11-01 13:57:44 25 4
gpt4 key购买 nike

我正在开发 C++ 控制台应用程序。我想执行并打印应用程序窗口屏幕中心的所有内容(水平 + 垂直),如下所示。

 --------------------------------
| |
| |
| User : xyz |
| Pass : **** |
| |
| |
--------------------------------

我想按照上面指出的那样运行我的整个程序。有什么办法吗?如有任何帮助或建议,我们将不胜感激。

最佳答案

这个怎么样(LIVE EXAMPLE):

#include <iostream>
#include <string>
#include <vector>


void centerify_output(std::string str, int num_cols) {
// Calculate left padding
int padding_left = (num_cols / 2) - (str.size() / 2);

// Put padding spaces
for(int i = 0; i < padding_left; ++i) std::cout << ' ';

// Print the message
std::cout << str;
}


int main() {
std::vector<std::string> lines = {
"---------------------------------",
"| |",
"| |",
"| User : xyz |",
"| Pass : **** |",
"| |",
"| |",
"---------------------------------",
};

int num_cols = 100;

// VIRTUAL BORDER
std::cout << std::endl;
for(int i = 0; i < num_cols; ++i) std::cout << ' ';
std::cout << '|' << std::endl;

// OUTPUT
for(int i = 0; i < lines.size(); ++i) {
centerify_output(lines[i], num_cols);
std::cout << std::endl;
}

// VIRTUAL BORDER
std::cout << std::endl;
for(int i = 0; i < num_cols; ++i) std::cout << ' ';
std::cout << '|' << std::endl;
}

你明白了。当垂直居中输出时,您只需将填充结束行放在控制台的顶部。

关于c++ - 如何将输出对齐到屏幕中心 - C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16980361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com