我正在尝试在控制台窗口中将输出格式化为四个单独的字段,均匀分布。
out << left << setw(24) << "Name" << "Location"
<< right << setw(20) << "Acres " << "Rating" << endl;
out << left << setw(24) << "----" << "--------"
<< right << setw(20) << "----- " << "------" << endl;
while ( current_node )
{
out << left << setw(24) << current_node->item.getName() // equivalent tabs dont work?
<< current_node->item.getLocation() << right << setw(20)
<< current_node->item.getAcres()
<< " " << current_node->item.getRating()
<< endl;
current_node = current_node->nextByName;
}
上面的代码,出于某种原因,当setw(n)是相同的值时,它们不会均匀分配...
答案 0 :(得分:3)
setw()
操纵器仅影响下一个输出字段 - 它不是“粘性”。因此,您需要为每个输出字段指定所需的内容,而不仅仅是更改一次并期望它对以下每个输出项执行操作。
我想你想要这样的东西:
cout << left << setw(24) << "Name" << setw(24) << "Location" ;
cout << right << setw(20)<< "Acres" << setw(20) << "Rating" << endl;
cout << left << setw(24) << "----" << setw(24) << "--------" ;
cout << right << setw(20) << "-----" << setw(20) << "------" << endl;
while ( current_node )
{
cout << left << setw(24) << current_node->item.getName()
<< setw(24) << current_node->item.getLocation()
<< right
<< setw(20) << current_node->item.getAcres()
<< setw(20) << current_node->item.getRating()
<< endl;
current_node = current_node->nextByName;
}
C ++流I / O - 它的类型安全,但不太安全。