C++ streamsize prec = cout.precision(3) - 它是如何工作的?

use*_*160 5 c++ precision cout copy assign

我是一个使用c ++的新手.我有一个简单的问题,可能是一个愚蠢的问题.

streamsize prec = cout.precision(3);
Run Code Online (Sandbox Code Playgroud)

据我所知,这个声明的作用是这样的:将cout精度设置为3,但是将之前的精度值赋值给prec.

另外,简单地说,我们可以将一个函数结果(比如数学加法函数)赋给变量:

int z = addition(3,4);
Run Code Online (Sandbox Code Playgroud)

在第二个中,它进行计算并将结果分配给变量z,而不是先前的值或默认值.我的理解是否正确?他们之间有什么区别?

Rei*_*ica 4

函数返回什么值完全取决于该特定函数。大多数函数只是返回其操作的结果。

标准库流中的状态设置函数(例如precision)在其“我设置一个新值并返回旧值”的接口中有点不寻常,但它仍然完全有效,只要函数的行为被记录下来(其中这是他们的情况)。