问题标签 [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++ 中读取常量字符数
如果字符串不超过 20 个字符并且在 C++ 中可以包含空格,您将如何读取它?例如我有这种文件:
我想用最基本的方式来写它。在这种情况下,我宁愿只使用 C++(没有 C 的东西)。这意味着我想将它存储在 std::string 中。
我可以使用istream::get或istream::getline但我必须避免使用换行符。这是有问题的(我正在编写的代码将向初学者展示)。
你对这个问题有什么解决方案?
编辑:
如被问及,我将告诉您我尝试过的方法,但我认为这不会有任何好处。我不是 C++ 初学者,通常我会使用istream::get和 char 数组之类的东西,但是对于某些人来说,删除换行符可能看起来太技术了。
所以......使用istream::operator>>读取 char 数组或std::string失败,因为当他们看到空格字符时它会停止读取(我可能必须阅读几个单词)。这意味着以下代码失败:
或者...
另一件事是换行符因系统而异,实际上 Windows 默认使用其中两个,我尝试在 Windows 上使用istream::ignore和 2 作为参数,这是忽略新行的唯一方法,我得出的结论是,这是因为 Windows 使用两个字符作为换行符。这意味着它不能在 Linux 上运行,而且它必须更复杂......再次 - 对初学者不利。
c++ - 从 char* 获取 istream
我有一个 char* 和从库接收的数据长度,我需要将数据传递给一个接受 istream 的函数。
我知道我可以创建一个字符串流,但这会复制所有数据。而且,数据肯定会有 0,因为它是一个 zip 文件,并且创建一个字符串流会将数据带到我认为的第一个 0。
有什么方法可以从 char* 创建 istream 并且它的大小而不复制所有数据?
c++ - 在 istream 错误上添加 Null 终止符
我正在尝试将包含字符串集合的文本文件读取到对象数组中,并且输入有问题。我收到一个错误,该错误在此处转到 istream
我不太了解如何在 C++ 中使用字符串,因此将不胜感激。
我的代码:
c++ - 在读取循环中区分失败和文件结尾
从 istream 读取的惯用循环是
现在这个循环有一个问题:它不会区分循环是由于文件结束还是由于错误而终止。例如,采取以下测试程序:
第一次调用testread
包含两个有效的布尔值,因此不是错误。第二次调用以第三个不完整的布尔值结束,因此是一个错误。然而,两者的行为是相同的。在第一种情况下,读取布尔值失败,因为没有,而在第二种情况下,它失败,因为它不完整,并且在两种情况下都命中了 EOF。实际上,上面的程序输出了两次相同的行:
为了解决这个问题,我想到了以下解决方案:
这个想法是在实际尝试提取值之前检测常规 EOF。因为文件末尾可能有空格(这不会是错误,但会导致读取最后一项没有命中 EOF),所以我首先丢弃所有空格(不会失败),然后测试 EOF。只有当我不在文件末尾时,我才会尝试读取该值。
对于我的示例程序,它似乎确实有效,我得到了
所以在第一种情况下(正确输入),fail()
返回 false。
现在我的问题是:这个解决方案是否保证有效,或者我只是(不)幸运地碰巧给出了预期的结果?另外:是否有更简单的(或者,如果我的解决方案是错误的,是正确的)方法来获得所需的结果?
c++ - 为什么 istream 对象可以用作 bool 表达式?
有谁知道为什么 istream 对象可以用作布尔表达式?例如:
这里input >> iValue
返回对 ifstream 对象的引用。我想知道为什么这个对象可以用作布尔表达式。
我查看了 ifstream 类,发现这可能是由于以下成员函数:
有关此功能的详细信息,请参见此处。
如果是的话,谁能给我解释一下这个功能?该函数的原型不同于通常的运算符重载声明。这个函数的返回类型是什么?
如果不是,那么 ifstream 对象可以用作 bool 表达式的原因是什么?
期待您的帮助!
程
c++ - c++ 中的游戏编程,这条旧线是什么,为什么它不起作用?
这是我收到错误的一行代码,在我 2008 年的书中:std::cin.get(std::cin.rdbuff()->in_avail()+1);
有人可以告诉我这意味着什么以及为什么它给我一个错误:
- 更新 -
将 rdbuff 更改为rdbuf
,并引发此错误:
c++ - 调用“getline”没有匹配的函数
我有一堂课叫parser
:
在parser::parse
我想遍历每一行,所以我使用std::getline
:
但是,编译器给了我这个错误:
但是第一个参数std::getline
是 type std::istream&
,对吧?我可能做错了什么?
c++ - 为什么这会产生 bad_alloc 错误?
目前,我正在尝试为 Student 设置一个成员函数,该函数从 cin 读取字符串,用作该函数的参数,然后使用数据创建一个 Student 对象。但是,它是否给了我一个 bad_alloc 错误。我知道该函数正在获取字符串,但在创建新对象后会出现此错误。
错误:
构造函数:
功能:
测试学生.cpp:
com - 在经典 ASP 中使用 WinHttpRequest.ResponseStream(与 IStream 相关)?
有没有办法使用VBScript/ASP 中的ResponseStream
属性?WinHttp.WinHttpRequest.5.1
至少IStream
接口(ResponseStream
与之相关)在一定程度上集成到了 ASP 中。
或者这是你可以在脚本中实现的限制?如果您想更进一步,要求您推出自己的 COM 组件?
请注意,我知道我可以使用req.ResponseText
或req.ResponseBody
。感兴趣的是知道您是否可以使用仅针对 C 记录但可能(推测)可访问脚本的内容在脚本中走得更远。我对COM一无所知。
c++ - istream 提取运算符:如何检测解析失败?
如何检测 istream 提取是否像这样失败?
编辑——虽然问题标题涵盖了这一点,但我忘了在正文中提及:我真的想检测失败是由于格式错误,即解析,还是由于任何其他与 IO 相关的问题,以便提供适当的反馈(格式错误的异常(“x”)或其他)。