我想使用 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;
}
我是一名优秀的程序员,十分优秀!