我在使该表正确对齐方面遇到问题,这是我的表中的cout语句。我的问题是如何在一行中设置不同的格式,而又不会弄乱该行中的下一个条目。例如,当我使用setprecision(2)作为我的权重时,goldvalue被弄乱了,并给了我一个奇怪的数字,例如5656e + 02

 cout << "                   Value Analysis" <<endl;
cout << "Gold: " << setw(6) <<  "" <<goldweight<< "  Oz @ "<<costgold<<"
("<<setw(1)<<    ""<<carats<<"         Carats) $"<<goldvalue<<endl;

最佳答案

是的,setw()setprecision()等会弄乱东西。
您可以做的是使用临时std::ostringstream

#include <sstream>
...
std::ostringstream oss_goldweight ;
std::ostringstream oss_goldvalue ;
std::ostringstream oss_goldcarats ;

oss_goldweight << setw(6) << goldweight ;
oss_goldvalue << setprecision(2) << goldvalue ;
oss_goldcarats << setw(1) << carats ;


然后使用oss_goldxyz变量而不是原始值。

关于c++ - 如何将用户输入的格式设置为整齐的表格,以便在C++中输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18992724/

10-17 02:02