Accelerated C++ 中文版中 第三章 3.1那个示例代码
#include <iomanip>
#include <ios>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::precision;
int main()
{
cout<< "please enter your first name: ";
string name;
cin>>name;
cout<<"Hello, "<<name<<"!"<<endl;
cout<< "please enter your midterm and final exam grades: ";
double midterm, final;
cin>>midterm>>final;
cout<<"Enter all your homework grades, "
"followed by end of file: ";
int count = 0;
double sum = 0;
double x;
while (cin>>x)
{
++count;
sum += x;
}
streamsize prec = cout.precision();
cout<<"your final grade is "<<setprecision(3)<<0.2*midterm+0.4*final+0.4*sum/count<<setprecision(prec)<<endl;
return 0;
}
编译后报错
百度后发现 原来是原书中的错误 中文版未纠正.
把using std::precision这句注释 可以修正其中一个错误,但是还是不解,为啥去掉才行呢?这句干嘛呢?
又百度之,发现是设定浮点数精度的....但是 因为precision是COUT的一个方法吧,所以 当你using cout时候 已经附带他了.
其他错误雷同此问题.