问题标签 [istream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 单链表 C++ ostream 和 istream -- 输出内存地址
我对此真的很陌生,现在正在学习单链表。我正在写一些代码,但我真的很困惑。我正在尝试编写读取方法和写入方法。我有一个我无法更改的测试工具。我只想能够读取流并输出流,这样它就不会返回内存地址。
谁能以非常简单的方式解释并帮助我修复此代码?
并在头文件中
谢谢你!
c++ - MSVC istream 实现锁定缓冲区
我正在处理一些现有代码,这些代码正在反序列化存储在文本文件中的对象(我可能需要阅读数千万个这些对象)。文件的内容首先被读入 a wstring
,然后它wistringstream
从中生成 a 。在程序上运行 Very Sleepy 分析器表明它在以下调用堆栈中花费了大约 20% 的时间:
和类似的std::_Mutex::_Unlock
。我正在使用 Visual C++ 2008。
往里istream
看,我看到它构造了一个在底层调用和方法的sentry
对象。这反过来只是调用和与该缓冲区关联的一个。然后定义如下:_Lock
_Unlock
basic_streambuf
_Lock
_Unlock
_Mutex
看起来 _MULTI_THREAD 设置yvals.h
为
现在,我知道永远不会有另一个线程尝试访问此缓冲区,但在我看来,在使用标准 iostream 时无法绕过此锁定,这看起来既奇怪又令人沮丧。我错过了什么吗?有解决方法吗?
c++ - Istream 最多消耗 N 个空格字符
在应用运算符>>时,是否可以告诉 std::istream 仅使用固定数量(即 1)的空白字符?我有一个要解析为参数的字符串,但有些参数是空的,这导致对 operator>> 的后续调用失败。
c++ - istream >> ostream << 使用 * 指针重载运算符
如果 >> 和 << 运算符正在处理指针,我将如何重载它们?
在标题中:
在 cpp 中:
c++ - 如何使用 libjpeg 从 std::istream 读取 JPEG?
FILE*
libjpeg 可以从一个或一个缓冲区中读取 JPEG 数据。我的数据来自std::istream
. 我可以将整个内容读入缓冲区以与 libjpeg 一起使用,但如果可能std::istream
的话,我宁愿让 libjpeg 直接从其中读取。std::istream
如何才能做到这一点?
c# - PInvoke 和 IStream
我有一个从用 c++ 编写的 dll 导出的函数,具有以下签名:
它返回一个内存流,显然它的大小。我遇到的困难是为导出的函数创建签名,然后尝试在 C# 中读取流。在某一时刻能够使用“不安全”字节指针来获取信息,但这不符合我们的要求。
任何想法、示例、示例等将不胜感激。
c++ - 如何将 istream 与字符串一起使用
我想将文件读入字符串。我正在寻找不同的方法来有效地做到这一点。
使用固定大小的 *char 缓冲区
我收到了Tony 的回答,它创建了一个 16 kb 缓冲区并读入该缓冲区并附加缓冲区,直到没有更多内容可读取。我了解它是如何工作的,而且我发现它非常快。我不明白的是,在该答案的评论中,据说这种方式将所有内容复制了两次。但据我了解,它只发生在内存中,而不是磁盘中,所以几乎不引人注意。它从缓冲区复制到内存中的字符串是否有问题?
使用 istreambuf_iterator
我收到的另一个答案使用 istreambuf_iterator。代码看起来很漂亮而且很小,但是速度非常慢。我不知道为什么会这样。为什么那些迭代器这么慢?
使用 memcpy()
对于这个问题,我收到了我应该使用 memcpy() 的评论,因为它是最快的本机方法。但是如何将 memcpy() 与字符串和 ifstream 对象一起使用?ifstream 不应该使用自己的读取功能吗?为什么使用 memcpy() 会破坏可移植性?我正在寻找与 VS2010 以及 GCC 兼容的解决方案。为什么 memcpy() 不能与这些一起使用?
+ 还有其他有效的方法吗?
对于小于 10 MB 的小二进制文件,您推荐什么,我使用什么外壳?
(我不想将这个问题分成几部分,因为我对如何将 ifstream 读入字符串的不同方式之间的比较更感兴趣)
c++ - 通过函数打开流
我需要有关 s 的不可复制性质的帮助[io](f)stream
。
我需要在fstream
s 周围提供一个 hackish 包装器,以便在 Windows 上处理文件名中包含 unicode 字符的文件。为此,我设计了一个包装函数:
当然,这std::swap
条线是罪魁祸首。我也尝试从函数返回流,但它会导致同样的问题。a 的复制构造函数std::istream
是delete
d。我也尝试过std::move
,但没有帮助。我该如何解决这个问题?
编辑:Keep It Simple (TM)
感谢@tibur 的想法,我终于找到了一个很好的方法,但又很实用。从某种意义上说,它仍然是骇人听闻的,因为它取决于所使用的 Windows 标准 C++ 库,但由于只有两个真正的库在使用,所以对我来说这不是问题。
在用户代码中:
这取决于 C++0x<memory>
和auto
关键字。当然,您不能只close
使用结果stream
变量,但 GNU Libstdc++std::istream
析构函数确实负责关闭文件,因此在任何地方都不需要额外的内存管理。
ios - 如何通过 TCP 将 IplImage 从服务器发送到 iPod 客户端 UIImage
我在 linux 中有一个使用Berkeley_sockets的服务器,我创建了一个与 iPod 客户端的 TCP 连接。我有一个IplImage* img;
要从服务器发送到 iPod。我使用write(socket,/*DATA*/,43200);
命令,我尝试发送的数据是reinterpret_cast<char*>(img)
:img
和img->imageData
。所有这些选择实际上都发送任何类型的数据。
在 iPod 端,我以这种方式接收数据(正如我在 SO 中看到的那样。不要介意复杂的东西,它只是用于从单个图像接收所有数据。):
收到整个图像后,我有这个:
现在..我知道我可以让 openCV 在 iPod 上工作,但我找不到关于如何让它工作的简单解释,所以我使用了这个网页的第二个代码并对其进行了调整,因为我知道所有规格我的图像(例如,我设置了CGImageCreate()
函数中的所有变量。):
}
问题:当我显示图像时,我得到它完全奇怪和“随机”,即使发送的图像总是相同的。我真的不知道怎么了。。
PS:TCP 连接与其他数据(如数字或单词)一起工作正常。并且图像是灰度的。
感谢所有的帮助。
c++ - 如何找出 std::istream 中有多少字节可用?
如果我想将read()
a 的内容std::istream
放入缓冲区,我必须先找出有多少可用数据才能知道缓冲区的大小。为了从 istream 中获取可用字节数,我目前正在执行以下操作:
同样,由于 std::istream::eof() 不是一个非常有用的基金 AFAICT,要找出istream
' 的 get 指针是否在流的末尾,我这样做:
我的问题:
有没有更好的方法从 获取可用字节数istream
?如果不在标准库中,也许在 boost 中?