ostream 输出中格式设置streamsize 问题(详见plus6 351页)
void Stock::show()
{
using std::cout;
using std::ios_base;
//set format to #.###
ios_base::fmtflags orig = cout.setf(ios_base::fixed, ios_base::floatfield);
std::streamsize prec = cout.precision(3);
cout << "Company: " << company
<< " Shares: " << shares << '\n';
cout << " Share Price: $" << share_val;
//set format to #.##
cout.precision(2);
cout << " Total Worth: $" << total_val << '\n';
//restore original format
cout.setf(orig, ios_base::floatfield);
cout.precision(prec);
}
ios_base::fmtflags orig = cout.setf(ios_base::fixed, ios_base::floatfield);
这句保存了格式信息到orig
cout.setf(orig, ios_base::floatfield);
这个还原格式。
std::streamsize prec = cout.precision(3);
那这个干吗?你直接cout.precision(3);不就好了?
后面还 cout.precision(prec);???
主要是对streamsize 不理解吧。百度不到。