【发布时间】:2019-12-09 08:03:13
【问题描述】:
我正在探索 C++ 中的 ostream 类。我被cout 的字符串和整数数据类型的奇怪输出困住了。
当传递一个整数或浮点值时,输出正是我传递的。例如cout.operator<<(10); 打印10。但是当将字符串作为参数传递时,它会打印一些十六进制值:
#include <iostream>
#include <string>
using namespace std;
int main() {
const char* str = "aia";
cout.operator<<(str);
return 0;
}
输出:0x4007e0。
【问题讨论】:
-
你为什么要这样直接使用
operator<<?你想做什么? -
@NicolBolas 我怀疑他们不知道该怎么做。
-
我想了解操作符的级联实际上是如何工作的
-
假设您没有特殊原因使用这种形式的运算符cout << str;,您就会看到预期的输出。
-
我试过了,它打印了字符串,但我的问题是为什么它打印一些十六进制值,而它可以打印其他数据类型的相同结果