gpt4 book ai didi

c++ - 如何用cout设置固定宽度?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:06 34 4
gpt4 key购买 nike

我想使用 C++ 计算出类似输出的表格。它应该是这样的

Passes in Stock : Student Adult
-------------------------------
Spadina 100 200
Bathurst 200 300
Keele 100 100
Bay 200 200

但我的总是这样

Passes in Stock : Student Adult
-------------------------------
Spadina 100 200
Bathurst 200 300
Keele 100 100
Bay 200 200

我的输出代码

std::cout << "Passes in Stock : Student Adult" << std::endl;
std::cout << "-------------------------------";

for (int i = 0; i < numStations; i++) {

std::cout << std::left << station[i].name;
std::cout << std::right << std::setw(18) << station[i].student << std::setw(6) << station[i].adult << std::endl;

}

我怎样才能改变它,让它看起来像顶部的输出?

最佳答案

为了保持一致的间距,您可以将标题的长度存储在一个数组中。

size_t headerWidths[3] = {
std::string("Passes in Stock").size(),
std::string("Student").size(),
std::string("Adult").size()
};

介于两者之间的东西,例如 ": " Student 和 Adult 之间的空格应该被视为无关输出,您不会将其纳入计算。

for (int i = 0; i < numStations; i++) {

std::cout << std::left << std::setw(headerWidths[0]) << station[i].name;
// Spacing between first and second header.
std::cout << " ";
std::cout << std::right << std::setw(headerWidths[1]) << station[i].student
// Add space between Student and Adult.
<< " " << std::setw(headerWidths[2]) << station[i].adult << std::endl;
}

关于c++ - 如何用cout设置固定宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25918057/

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