我的问题如下:我想在执行时将输出文本与输出 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/