因为我在Google上找不到任何东西,因为他们不接受搜索词“>>”,所以我决定在这里问。
首先,不,我不是指按位移位运算符。这是不同的。我已经看到它出现在一些代码中,如果它是一个移位运算符就没有意义。
cout << a;
就是一个例子。我知道它打印出来了,但“&lt;&lt;”的定义是什么?
或者在我的情况下,我有一个类似的代码:
for(int index=0;index<n;index++)
inputFile >> StringArray[index];
这是什么意思?
答案 0 :(得分:8)
bitshift运算符经常被重载,意味着从流中读取值和写入流。
编辑:稍微详细一点,C ++允许你重载或改变几乎所有操作符的含义。 <<
和>>
运算符被选择为重载以写入/读取数据的源或接收器,因为它们在视觉上看起来像箭头或导管。除了使用什么运算符之外,移位的零通用性。
答案 1 :(得分:1)
它们按位移位重载运算符,通常称为“流运算符” 我不详细,但正如你所说,
cout<<a;
输出a的值,即将a的值放入输出流中,并显示在屏幕上。
在
的情况下inputfile>>variable;
您正在将文件中的数据读入变量。
答案 2 :(得分:1)
关于写入或读取流。
选中此示例以获取实际示例:http://www.cplusplus.com/doc/tutorial/files和http://www.umich.edu/~eecs381/handouts/filestreams.pdf。
答案 3 :(得分:1)
正如你所说,这些被称为按位运算符。
但是,在C ++中,您可以重载这些运算符(实际上是任何运算符)来执行您想要的操作。这就是这里发生的事情。 <<
和>>
在ostream
和istream
对象中重载,分别打印到流中并从中读取。
实际上,你可以重载任何操作符来对对象做任何你想做的事情。可以找到一个示例here。
干杯。
PS:围绕这些运营商的概念很容易可视化。当你写:
cout << "Hello world";
只需要一点点想象力,你就可以说你把右边的字符串“放”到左边的cout
流(因此左边是“箭头”)。同样,当你写:
std::string str;
cin >> str;
您可以想象从左侧的cin
流中提取字符串并将其“放”在右侧的str
变量上(因此右侧指向“箭头”)。