|
|
1
3
在您要检查的示例中,在调用格式化的提取操作之后,应该始终检查流的任何失败标志是否已设置。
另外,您正在使用
为什么不创建一个提示函数来打印提示,检索输入,返回对流的引用,这样您就可以使用通常的流到布尔类型转换来测试它是否成功。 这样,您就可以摆脱真正和明确的中断。
|
|
|
2
2
对于标准输入来说,这个问题并没有真正意义。在标准输入流结束后,很难从中读取某些内容——您必须以某种方式重新打开它,但无法重新打开标准输入。它可能连接到一个管道、一个文件或一个终端——并且没有适合所有这些的行为。 我想,你将要从终端上明确地阅读。在un*x系统上,这意味着读取/dev/tty,并在需要时重新打开它。这是一个简单的例子,大多数错误检查都忽略了。
|
|
|
3
0
在流遇到EOF之后,您需要清除标志,以使其能够执行大部分操作。 |
|
|
4
0
嗯,我可能错过了什么,但我从来没见过你
|
|
|
5
0
在读取一个EOF时,您只需忽略它并循环返回,而不退出循环,因此您将继续读取EOF并继续循环。如果你想在看到一个EOF时做些什么,你需要在你的开关或者之前处理它。 也许您想在用户用^d关闭stdin后从某个地方读取输入?在这种情况下,您必须关闭CIN并重新打开它,才能从另一个您想要读取输入的地方读取。 |
|
|
6
0
如前所述,您需要确保流没有处于错误状态。我会改变使用good()的条件。不要只是检查eof,因为有几种方法可以使流变得“坏”而不是eof。
|
|
|
7
0
} |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |