问题标签 [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.

0 投票
1 回答
784 浏览

c++ - 在模板化函数中从 istream 中提取 bool

我正在将我的字段类读取函数转换为一个模板函数。int, unsigned int, long,我有和的字段类unsigned long。这些都使用相同的方法从 an 中提取值istringstream(仅类型更改):

棘手的部分是bool(Boolean) 类型。Boolean: 有许多文本表示形式
0, 1, T, F, TRUE, FALSE以及所有不区分大小写的组合

以下是问题:

  1. boolC++ 标准说什么是使用流提取运算符提取 a 的有效数据?
  2. 既然布尔值可以用文本来表示,那么这涉及到locales吗?
  3. 这个平台依赖吗?

我想通过不编写自己的bool输入处理程序来简化我的代码。

我正在使用 MS Visual Studio 2008(版本 9)、C++ 以及 Windows XP 和 Vista。

0 投票
1 回答
1537 浏览

c++ - 从 std::istreambuf_iterator<> 复制到 std::vector<>

我有一个 Visual Studio 2008 C++ 应用程序,我想将流视为一组迭代器。

例如,如果我要通过流接收 WIN32_FIND_DATA 结构数组,我希望能够执行以下操作:

为此,我定义了一个派生自的类std::basic_streambuf<>

我想不通的是如何优雅地从 s 数组转到bytes 数组WIN32_FIND_DATA。因为std::basic_streambuf<>需要一个std::char_traits<>模板参数,我的印象是它只能使用内置类型,如charor byte,而不是结构如WIN32_FIND_DATA. 正确的?

关于如何使这项工作的任何建议?

谢谢,保罗

0 投票
1 回答
5709 浏览

c++ - 从 istream 读取

如何在不使用 operator>>() 的情况下从 istream 中提取数据(内容)?

0 投票
1 回答
2162 浏览

c++ - 可以使用 libcurl 将远程文件作为 istream 读取吗?

我想使用 libcurl 库打开一个远程日期文件并使用 istream 遍历它。我已经浏览了这个线程中的好例子,但它将远程文件写入本地文件。相反,我希望将远程读取推送到 istream 以进行后续编程操作。这可能吗?我将非常感谢帮助。

最好的,亚伦

0 投票
5 回答
4044 浏览

c++ - 非复制字符串流

所以istringstream在初始化时复制字符串的内容,例如

我想知道是否有一种方法可以在不复制内容的情况下std::istringstream使用给定的缓冲区。c_str这样,它就不必在将 传递给作为参数的std::istringstream&函数之前复制大量内存。istream&

我一直在尝试做的是将一些只接受std::ifstream&参数(它们主要是解析器)的函数也转换为接受istream&。我必须为此创建自己的istream子类吗?

0 投票
1 回答
2269 浏览

windows - 使用 Windows IStream 下载文件

我正在使用activex控件将虚拟文件从网站拖到桌面上。

如何在我的 http url 上创建一个IStream,以便 Windows 可以执行 drop?

我正在查看的示例使用SHCreateStreamOnFile复制本地文件;对于其他类型的流,例如 http 文件下载,必须有类似的功能。

0 投票
1 回答
2491 浏览

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() 等)

谢谢你的帮助。这个网站给我留下了深刻的印象——参与者的知识和他们友好、诚实的天性承认谁有最好的答案。:)

0 投票
3 回答
1362 浏览

c++ - getline() 与 ifstream 的意外行为

为简化起见,我尝试使用 ifstream 类及其 getline() 成员函数读取 CSV 文件的内容。这是这个 CSV 文件:

和代码:

我希望读取所有数字,因为假设 getline 会获取自上次读取以来写入的内容,并在遇到“,”或“\ n”时停止。

但似乎它读得很好,除了“4”,即第二行的第一个数字(参见控制台):

因此我的问题是:是什么让这个 '4' 在(我猜)'\n' 之后如此具体,以至于 getline 甚至没有尝试考虑它?

(谢谢 !)

0 投票
3 回答
20613 浏览

c++ - 找到 cin 和 ifstream 的流的结尾?

我正在阅读一本 C++ 教科书,作为 C++ 编程的复习。其中一个实践问题(无需过多介绍)要我定义一个可以作为参数传递 ifstream 或 cin(例如 istream)的函数。从那里,我必须通读流。麻烦的是,我想不出一种方法让这个函数使用 cin 和 ifstream 来有效地找到流的结尾。即,

不会为cin工作。我可以修改函数以查找某个短语(例如“#End of Stream#”或其他内容),但我认为如果我传递的文件流具有这个确切的短语,那么这是一个坏主意。

我曾想过使用函数重载,但到目前为止,这本书已经提到了它想要我这样做的时候。我可能在这个练习题上投入了太多精力,但我喜欢创作过程,并且很好奇是否有这样一种方法可以做到这一点而不会超载。

0 投票
2 回答
989 浏览

c++ - 为什么 istream_iterator抛出 std::bad_cast?

到底是怎么回事?

stream.write(some_array, sizeof(some_array)在构建迭代器之前尝试过,但无济于事。

谢谢。