问题标签 [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++ - 在模板化函数中从 istream 中提取 bool
我正在将我的字段类读取函数转换为一个模板函数。int, unsigned int, long,
我有和的字段类unsigned long
。这些都使用相同的方法从 an 中提取值istringstream
(仅类型更改):
棘手的部分是bool
(Boolean) 类型。Boolean: 有许多文本表示形式
0, 1, T, F, TRUE, FALSE
,以及所有不区分大小写的组合
以下是问题:
bool
C++ 标准说什么是使用流提取运算符提取 a 的有效数据?- 既然布尔值可以用文本来表示,那么这涉及到
locale
s吗? - 这个平台依赖吗?
我想通过不编写自己的bool
输入处理程序来简化我的代码。
我正在使用 MS Visual Studio 2008(版本 9)、C++ 以及 Windows XP 和 Vista。
c++ - 从 std::istreambuf_iterator<> 复制到 std::vector<>
我有一个 Visual Studio 2008 C++ 应用程序,我想将流视为一组迭代器。
例如,如果我要通过流接收 WIN32_FIND_DATA 结构数组,我希望能够执行以下操作:
为此,我定义了一个派生自的类std::basic_streambuf<>
:
我想不通的是如何优雅地从 s 数组转到byte
s 数组WIN32_FIND_DATA
。因为std::basic_streambuf<>
需要一个std::char_traits<>
模板参数,我的印象是它只能使用内置类型,如char
or byte
,而不是结构如WIN32_FIND_DATA
. 正确的?
关于如何使这项工作的任何建议?
谢谢,保罗
c++ - 从 istream 读取
如何在不使用 operator>>() 的情况下从 istream 中提取数据(内容)?
c++ - 可以使用 libcurl 将远程文件作为 istream 读取吗?
我想使用 libcurl 库打开一个远程日期文件并使用 istream 遍历它。我已经浏览了这个线程中的好例子,但它将远程文件写入本地文件。相反,我希望将远程读取推送到 istream 以进行后续编程操作。这可能吗?我将非常感谢帮助。
最好的,亚伦
c++ - 非复制字符串流
所以istringstream
在初始化时复制字符串的内容,例如
我想知道是否有一种方法可以在不复制内容的情况下std::istringstream
使用给定的缓冲区。c_str
这样,它就不必在将 传递给作为参数的std::istringstream&
函数之前复制大量内存。istream&
我一直在尝试做的是将一些只接受std::ifstream&
参数(它们主要是解析器)的函数也转换为接受istream&
。我必须为此创建自己的istream
子类吗?
windows - 使用 Windows IStream 下载文件
我正在使用activex控件将虚拟文件从网站拖到桌面上。
如何在我的 http url 上创建一个IStream,以便 Windows 可以执行 drop?
我正在查看的示例使用SHCreateStreamOnFile复制本地文件;对于其他类型的流,例如 http 文件下载,必须有类似的功能。
c++ - 如何为自定义 istream/streambuf 实现 seekg()?
十年前我曾经是一名 C++ 专家,但在过去的 10 年里,我一直在编写 Java。我刚刚开始了一个使用小型第三方 XML 解析器的 C++ 项目。XML 解析器接受 STL istream。我的 XML 数据来自 Windows COM IStream。我想我会做正确的事并创建一个适配器来获取 IStream 数据并通过 istream 将其呈现给 XML 解析器。
我按照http://www.mr-edd.co.uk/blog/beginners_guide_streambuf上的优秀教程创建了一个 COMStreambuf,它从底层 COM IStream 获取数据,并将其用作自定义 COMIstream 的缓冲区。一切看起来都不错,但我从解析器中得到一个读取错误。
结果解析器通过在 istream 上使用 seekg() 将整个文件读入内存以找出它的大小,然后使用 seekg() 回到开头一次性读取它。不出所料,前面提到的教程决定“为另一个帖子保存[实现搜索的说明]”,这显然从未写过。
有人能告诉我用我的自定义 istream/streambuf 实现 seekg() 需要做什么吗?我自己会冒险去做(我的第一个倾向是覆盖 istream 中的东西),但是由于我对 STL 的经验不够深入,加上我的 Java 心态,我担心我会做一些不完整的事情并且有一个脆弱的解决方案。(例如,如果不阅读教程,我永远不会猜到有人会通过编写新的 streambuf 来制作自定义 istream,或者我需要使用默认语言环境调用 imbue() 等)
谢谢你的帮助。这个网站给我留下了深刻的印象——参与者的知识和他们友好、诚实的天性承认谁有最好的答案。:)
c++ - getline() 与 ifstream 的意外行为
为简化起见,我尝试使用 ifstream 类及其 getline() 成员函数读取 CSV 文件的内容。这是这个 CSV 文件:
和代码:
我希望读取所有数字,因为假设 getline 会获取自上次读取以来写入的内容,并在遇到“,”或“\ n”时停止。
但似乎它读得很好,除了“4”,即第二行的第一个数字(参见控制台):
因此我的问题是:是什么让这个 '4' 在(我猜)'\n' 之后如此具体,以至于 getline 甚至没有尝试考虑它?
(谢谢 !)
c++ - 找到 cin 和 ifstream 的流的结尾?
我正在阅读一本 C++ 教科书,作为 C++ 编程的复习。其中一个实践问题(无需过多介绍)要我定义一个可以作为参数传递 ifstream 或 cin(例如 istream)的函数。从那里,我必须通读流。麻烦的是,我想不出一种方法让这个函数使用 cin 和 ifstream 来有效地找到流的结尾。即,
不会为cin工作。我可以修改函数以查找某个短语(例如“#End of Stream#”或其他内容),但我认为如果我传递的文件流具有这个确切的短语,那么这是一个坏主意。
我曾想过使用函数重载,但到目前为止,这本书已经提到了它想要我这样做的时候。我可能在这个练习题上投入了太多精力,但我喜欢创作过程,并且很好奇是否有这样一种方法可以做到这一点而不会超载。
c++ - 为什么 istream_iterator抛出 std::bad_cast?
到底是怎么回事?
我stream.write(some_array, sizeof(some_array)
在构建迭代器之前尝试过,但无济于事。
谢谢。