“<< />>” C ++中的运算符

时间:2013-11-06 14:11:04

标签: c++ operator-keyword

因为我在Google上找不到任何东西,因为他们不接受搜索词“>>”,所以我决定在这里问。

首先,不,我不是指按位移位运算符。这是不同的。我已经看到它出现在一些代码中,如果它是一个移位运算符就没有意义。

cout << a;就是一个例子。我知道它打印出来了,但“&lt;&lt;”的定义是什么?

或者在我的情况下,我有一个类似的代码:

for(int index=0;index<n;index++)
    inputFile >> StringArray[index];

这是什么意思?

4 个答案:

答案 0 :(得分:8)

bitshift运算符经常被重载,意味着从流中读取值和写入流。

编辑:稍微详细一点,C ++允许你重载或改变几乎所有操作符的含义。 <<>>运算符被选择为重载以写入/读取数据的源或接收器,因为它们在视觉上看起来像箭头或导管。除了使用什么运算符之外,移位的零通用性。

答案 1 :(得分:1)

它们按位移位重载运算符,通常称为“流运算符” 我不详细,但正如你所说,

cout<<a;

输出a的值,即将a的值放入输出流中,并显示在屏幕上。

的情况下
inputfile>>variable; 

您正在将文件中的数据读入变量。

答案 2 :(得分:1)

关于写入或读取流。

选中此示例以获取实际示例:http://www.cplusplus.com/doc/tutorial/fileshttp://www.umich.edu/~eecs381/handouts/filestreams.pdf

答案 3 :(得分:1)

正如你所说,这些被称为按位运算符。

但是,在C ++中,您可以重载这些运算符(实际上是任何运算符)来执行您想要的操作。这就是这里发生的事情。 <<>>ostreamistream对象中重载,分别打印到流中并从中读取。

实际上,你可以重载任何操作符来对对象做任何你想做的事情。可以找到一个示例here

干杯。

PS:围绕这些运营商的概念很容易可视化。当你写:

cout << "Hello world";
只需要一点点想象力,你就可以说你把右边的字符串“放”到左边的cout流(因此左边是“箭头”)。同样,当你写:

std::string str;
cin >> str;

您可以想象从左侧的cin流中提取字符串并将其“放”在右侧的str变量上(因此右侧指向“箭头”)。