Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释一下吗?[C+;+;] < C++ >引物:_C++ - Fatal编程技术网

有人能解释一下吗?[C+;+;] < C++ >引物:

有人能解释一下吗?[C+;+;] < C++ >引物:,c++,C++,下一个声明 std::cin >> v1 >> v2; 读取输入。输入运算符(»运算符)的行为 类似于输出操作符。它以一个istream作为它的 左侧操作数和对象作为其右侧操作数。上面写着 来自给定istream的数据,并存储在给定istream中读取的内容 对象与输出操作符一样,输入操作符返回其 左操作数作为其结果。因此,这个表达式是等价的 到 我不明白。这两个表达式如何等价?也许很简单。但是我不明白。操作符>只有2个操作数和返回值,所以当您写入:std::cin>

下一个声明

std::cin >> v1 >> v2; 
读取输入。输入运算符(»运算符)的行为 类似于输出操作符。它以一个istream作为它的 左侧操作数和对象作为其右侧操作数。上面写着 来自给定istream的数据,并存储在给定istream中读取的内容 对象与输出操作符一样,输入操作符返回其 左操作数作为其结果。因此,这个表达式是等价的 到


我不明白。这两个表达式如何等价?也许很简单。但是我不明白。

操作符>
只有2个操作数和返回值,所以当您写入:
std::cin>>v1>>v2
时,它意味着:

result = std::cin >> v1
result >> v2
这里还有另一个例子:
a+b+c

result = a + b
result + c

std::cin>>v1
是一个表达式,它将导致数据读入
v1
,并将计算为
std::cin
。也许这样有助于将其形象化:

(std::cin >> v1) >> v2;
//reads into v1 and evaluates to
(std::cin) >> v2; 
//equivalent to
std::cin >> v2;

你可以把第一种变体看作是第二种变体的缩写。类似于a+b+c是真的(a+b)+c,意思是先加上a和b,取其结果并加上c。因此,在这里,std::cin>>v1返回一个流,我们获取该流并使用v2操作结果流。您可以选择使用()

你试过运行它吗?
a+b+c
相当于
(a+b)+c
。“神奇”是操作符>>返回它的第一个操作数,stream.Legrojan,不。我读了一整节,然后通过运行那个东西来检查东西,然后再制作东西。我还没试过这个。我相信这是真的。它将毫无错误地运行。但这并不意味着我已经完全理解了这个概念在前一节“向流写入”中有更详细的讨论。如果你明白了,你必须明白这一点。我会修改这个话题。感谢您告诉我,我可能还没有完全理解某些内容,我认为加法示例可能有点混乱,因为
a+b
不返回
a
,因此它不是完全类似的。嗯,操作符>>不必返回相同的流-这取决于您如何重载它:)好的观点。我没有想到这是可能的。我很好奇,你知道这样做有什么实际用途吗?我用的是运算符
(std::cin >> v1) >> v2;
//reads into v1 and evaluates to
(std::cin) >> v2; 
//equivalent to
std::cin >> v2;