我在让这张表正确排列时遇到问题,这是来 self 的表的 cout 语句。我的问题是如何在一行中格式化不同的内容而不弄乱行中的下一个条目。例如,当我将 setprecision(2) 用于我的 goldweight 时,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 变量代替原始值。
我是一名优秀的程序员,十分优秀!