我似乎不能得到小数的数量使用setprecision c++正确



我目前正在研究子程序/子程序,或者随便你用英语怎么称呼它们,在我试图解决的这个特定任务中,我必须计算两个单词的平均长度。

void Length(string const text_1,
string const text_2,
int & total_length,
double & mean_length)
{
total_length = text_1.length() + text_2.length();
mean_length = static_cast<double>(total_length) / 2;
}
void Length_Program(int val)
{
string text_1;
string text_2;
int total_length{};
double mean_length{};
cout << "Mata in två ord: ";
cin >> text_1 >> text_2;
cout << "Totallängd: ";
Length(text_1, text_2, total_length, mean_length);
cout << total_length << endl;
cout << "Medellängd: " << fixed << setprecision(1) << mean_length;
}

我已经将精度设置为setprecision(1),我假设它只会写一个小数,但我一直得到两个小数。我的例子是:abcd E应该是平均2.5个单词,但由于某些原因,它显示为2.51个单词。有人能告诉我我做错了什么吗?

您的问题是您在最后一个输出行中忘记了<< endl。操作系统显示的返回代码被附加到您的输出中。setprecision工作正常