C++ 输出中的完全右对齐

标签 c++ shell

我的问题如下:我想在执行时将输出文本与输出 shell 的总右对齐。我不能使用标准的 std::setw()std::right 操纵器,因为我希望输出总是在正确的边界,不管有多大是 shell 。

有什么办法可以实现吗?

最佳答案

正如@Angew 所评论的那样,输出是一个流,因此它没有完全正确。要达到目的,可以简单的先获取shell的宽度,然后使用setw()right:

CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
int width = csbi.dwSize.X;

string str = "string you want to print";
cout << right << setw(width) << str << endl;

关于C++ 输出中的完全右对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21524490/

相关文章:

c++ - 此代码在 C++ 中出现杂散的 '\342' 编译器错误

c++ - 线程池编译错误

c - 自定义输入,在命令行中的单词中间写入时文本会被覆盖

c++ - 基于类成员存在/不存在的 SFINAE

c++ - 如何从 boost::split 获取多个参数

python - 为什么要在 Fabric 脚本中逐行重新执行 shell 命令?

shell - 重定向到日志文件时如何在 stdout 和 stderr 输出前加上时间戳?

linux - 在 Bash 脚本中使用 Curl 检查网站是否正常运行

regex - Bash shell - 从保存在字符串中的文件夹中提取目录名

c++ - 固定大小的特征类型作为参数