问题标签 [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 投票
2 回答
2234 浏览

c++ - 在 C++ 中读取常量字符数

如果字符串不超过 20 个字符并且在 C++ 中可以包含空格,您将如何读取它?例如我有这种文件:

我想用最基本的方式来写它。在这种情况下,我宁愿只使用 C++(没有 C 的东西)。这意味着我想将它存储在 std::string 中。

我可以使用istream::getistream::getline但我必须避免使用换行符。这是有问题的(我正在编写的代码将向初学者展示)。

你对这个问题有什么解决方案?

编辑:

如被问及,我将告诉您我尝试过的方法,但我认为这不会有任何好处。我不是 C++ 初学者,通常我会使用istream::get和 char 数组之类的东西,但是对于某些人来说,删除换行符可能看起来太技术了。

所以......使用istream::operator>>读取 char 数组或std::string失败,因为当他们看到空格字符时它会停止读取(我可能必须阅读几个单词)。这意味着以下代码失败:

或者...

另一件事是换行符因系统而异,实际上 Windows 默认使用其中两个,我尝试在 Windows 上使用istream::ignore和 2 作为参数,这是忽略新行的唯一方法,我得出的结论是,这是因为 Windows 使用两个字符作为换行符。这意味着它不能在 Linux 上运行,而且它必须更复杂......再次 - 对初学者不利。

0 投票
7 回答
47174 浏览

c++ - 从 char* 获取 istream

我有一个 char* 和从库接收的数据长度,我需要将数据传递给一个接受 istream 的函数。

我知道我可以创建一个字符串流,但这会复制所有数据。而且,数据肯定会有 0,因为它是一个 zip 文件,并且创建一个字符串流会将数据带到我认为的第一个 0。

有什么方法可以从 char* 创建 istream 并且它的大小而不复制所有数据?

0 投票
1 回答
382 浏览

c++ - 在 istream 错误上添加 Null 终止符

我正在尝试将包含字符串集合的文本文件读取到对象数组中,并且输入有问题。我收到一个错误,该错误在此处转到 istream

我不太了解如何在 C++ 中使用字符串,因此将不胜感激。

我的代码:

0 投票
1 回答
1977 浏览

c++ - 在读取循环中区分失败和文件结尾

从 istream 读取的惯用循环是

现在这个循环有一个问题:它不会区分循环是由于文件结束还是由于错误而终止。例如,采取以下测试程序:

第一次调用testread包含两个有效的布尔值,因此不是错误。第二次调用以第三个不完整的布尔值结束,因此是一个错误。然而,两者的行为是相同的。在第一种情况下,读取布尔值失败,因为没有,而在第二种情况下,它失败,因为它不完整,并且在两种情况下都命中了 EOF。实际上,上面的程序输出了两次相同的行:

为了解决这个问题,我想到了以下解决方案:

这个想法是在实际尝试提取值之前检测常规 EOF。因为文件末尾可能有空格(这不会是错误,但会导致读取最后一项没有命中 EOF),所以我首先丢弃所有空格(不会失败),然后测试 EOF。只有当我不在文件末尾时,我才会尝试读取该值。

对于我的示例程序,它似乎确实有效,我得到了

所以在第一种情况下(正确输入),fail()返回 false。

现在我的问题是:这个解决方案是否保证有效,或者我只是(不)幸运地碰巧给出了预期的结果?另外:是否有更简单的(或者,如果我的解决方案是错误的,是正确的)方法来获得所需的结果?

0 投票
2 回答
5088 浏览

c++ - 为什么 istream 对象可以用作 bool 表达式?

有谁知道为什么 istream 对象可以用作布尔表达式?例如:

这里input >> iValue返回对 ifstream 对象的引用。我想知道为什么这个对象可以用作布尔表达式。
我查看了 ifstream 类,发现这可能是由于以下成员函数:

有关此功能的详细信息,请参见此处
如果是的话,谁能给我解释一下这个功能?该函数的原型不同于通常的运算符重载声明。这个函数的返回类型是什么?
如果不是,那么 ifstream 对象可以用作 bool 表达式的原因是什么?
期待您的帮助!

0 投票
2 回答
263 浏览

c++ - c++ 中的游戏编程,这条旧线是什么,为什么它不起作用?

这是我收到错误的一行代码,在我 2008 年的书中:std::cin.get(std::cin.rdbuff()->in_avail()+1);

有人可以告诉我这意味着什么以及为什么它给我一个错误:

- 更新 -

将 rdbuff 更改为rdbuf,并引发此错误:

0 投票
1 回答
1068 浏览

c++ - 调用“getline”没有匹配的函数

我有一堂课叫parser

parser::parse我想遍历每一行,所以我使用std::getline

但是,编译器给了我这个错误:

但是第一个参数std::getline是 type std::istream&,对吧?我可能做错了什么?

0 投票
3 回答
4952 浏览

c++ - 为什么这会产生 bad_alloc 错误?

目前,我正在尝试为 Student 设置一个成员函数,该函数从 cin 读取字符串,用作该函数的参数,然后使用数据创建一个 Student 对象。但是,它是否给了我一个 bad_alloc 错误。我知道该函数正在获取字符串,但在创建新对象后会出现此错误。

错误:

构造函数:

功能:

测试学生.cpp:

0 投票
1 回答
3138 浏览

com - 在经典 ASP 中使用 WinHttpRequest.ResponseStream(与 IStream 相关)?

有没有办法使用VBScript/ASP 中的ResponseStream属性?WinHttp.WinHttpRequest.5.1至少IStream接口(ResponseStream与之相关)在一定程度上集成到了 ASP 中。

或者这是你可以在脚本中实现的限制?如果您想更进一步,要求您推出自己的 COM 组件?

请注意,我知道我可以使用req.ResponseTextreq.ResponseBody感兴趣的是知道您是否可以使用仅针对 C 记录但可能(推测)可访问脚本的内容在脚本中走得更远。我对COM一无所知。

0 投票
4 回答
6256 浏览

c++ - istream 提取运算符:如何检测解析失败?

如何检测 istream 提取是否像这样失败?

编辑——虽然问题标题涵盖了这一点,但我忘了在正文中提及:我真的想检测失败是由于格式错误,即解析,还是由于任何其他与 IO 相关的问题,以便提供适当的反馈(格式错误的异常(“x”)或其他)。