下面是Connector/C++的一个函数,它返回一个istream*类型的值。如果我试图直接打印它,会显示十六进制或内存地址,因为它是一种指针类型。
我尝试使用以下方法读取并打印它:
istream *stream = res->getBlob(1);
我尝试使用以下方法读取并打印它:
string s;
while (getline(*stream, s))
cout << s << endl;
但是这样会导致访问冲突。还有其他方法可以打印它或将其转换为字符串吗?
在getline之前,stream的值为:
- stream 0x005f3e88 {_Chcount=26806164129143632} std::basic_istream > *
所以对我来说似乎是有效的。如果失败了,我认为它将为null或0。
res->getBlob(1)
和调用getline(*stream, s)
之间发生了什么?返回std::istream*
很奇怪,因为它们相对昂贵,并且如果流不由res
或res
指向的某些东西拥有,则似乎会导致内存泄漏。 - Dietmar Kühlres->getBlob(1)
和getline(*stream, s)
之间没有任何东西。 - user1397417