作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这看起来很奇怪。我有一段代码如下:
List(const char* fn) {
std::ifstream file(fn);
if (!file){
throw std::string("*** Failed to open file ") + std::string(fn) + std::string(" ***");
}
while (file) {
T e;
if (e.load(file)){
list.push_back(*new T(e));
}
}
}
对于其他人来说,它似乎贯穿整个文件就好了。但对我来说,我陷入了机器上的无限循环。
操作系统 X - g++ 4.2
我不知道为什么这里的功能不同。
这里是无限循环:
while (file) {
T e;
if (e.load(file)){
list.push_back(*new T(e));
}
}
最佳答案
只要文件处于有效状态,
while(file)
就会返回 true。
您还没有告诉我们什么是 T
或者它的 load
方法是做什么的,所以我们真的不能给您更多的信息。您需要确保 load
方法关闭文件描述符,或将其保留在 eof
状态或其他类似状态。
关于c++ - while(file_object) 是一个导致无限循环的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27302810/
这看起来很奇怪。我有一段代码如下: List(const char* fn) { std::ifstream file(fn); if (!file){ throw s
刚开始使用 python,我无法绕过基本的文件导航方法。 当我阅读 tell() tutorial 它指出它返回我当前在我的文件上的位置(按字节)。 我的推理是文件的每个字符加起来就是字节坐标,对吧?
我是一名优秀的程序员,十分优秀!