- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
if(!file)
和 if(!file.is_open())
有什么区别?我用它们来检查文件是否已成功打开/读取。
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ifstream file;
// first one
if (!file)
cout<<"File is not opened"<<endl;
else
. . .
//second one
if (!file.is_open())
cout<<"File is not opened"<<endl;
else
. . .
}
最佳答案
c++ 文档解释了 operator!
Returns
true
if an error has occurred on the associated stream. Specifically, returnstrue
ifbadbit
orfailbit
is set inrdstate()
另一方面,is_open()
Checks if the file stream has an associated file. Returns
true
if the file stream has an associated file,false
otherwise
如果您想知道文件是否成功打开,请使用is_open()
。它也更能表达您的意图。
关于c++ - (!file) 和 (!file.is_open()) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59919741/
我一直在 RPi2 上使用代码与 RS485 Shield 进行通信驱动各种继电器。我最近得到了一个 RPi3,之前在 RPi2 上运行的代码在 RPi3 上出现了错误。 首先,我知道蓝牙 Contr
如果我在我的代码中包含 if 测试,则会返回错误消息,我不确定为什么。当它不被使用时,我的程序会陷入一个循环,永远不会到达文件的末尾。我不明白出了什么问题。 int countlines() {
这个问题在这里已经有了答案: Where to place file in order to read? (4 个答案) 关闭 6 年前。 为什么我的 is_open() 总是失败并进入显示错误消息
我在尝试加载文本文件时收到访问冲突写入位置错误。在调试时,我注意到我的“is_open()”和“good()”检查都通过了,因为我到达了“while (std::getline(myfile, lin
我有一个类似于下面的函数,它是 const 并且需要在继续之前检查文件流是否打开: bool MyClass::checkSomeStuff() const { // Where output
我用 C++ 编写了一段代码,该代码从文本文件中读取或使用 ifstream/ofstream 创建新文件。我想用 fstream 的 .is_open 成员函数添加一个检查,以查看文件是否已成功打开
我想通过 fstream 将数据写入文件,并在完全(打开-写入-关闭)成功与否时输出。我还想编写尽可能少的代码。这是关于 C++03 的。 解决方案 1(似乎是最优的): std::fstream f
if(!file) 和 if(!file.is_open()) 有什么区别?我用它们来检查文件是否已成功打开/读取。 #include #include using namespace std; in
观察 我根据这个server构建了一个演示应用程序在我使用 C++11 std 替换原先在 boost 中的所有内容后使用 ASIO 的示例。服务器可以显示类成员 tcp_session::start
阅读 Savitch 的 Problem Solving in C++,std::ifstream::fail 以检查文件是否已正确打开(ifstream 或 ofstream)。 正如我第一次看到的
我正在使用 QtCreator 3.6.0 - 基于 Qt 5.5.1(Clang 6.1 (Apple),64 位)。 我正在尝试读取一个文本文件,但我一直收到此错误消息, Unable to op
我正在尝试从 C++ 中的 .csv 文件中读取。调用 myfile.open(file) 后,is_open 返回 true,但 getline 仅返回空字符串。 我曾尝试使用 vector 来读取
#include #include using namespace std; void Readfile(string fname) { ifstream infile(fname);
文件的初始化: ifstream file("filename.txt"); if (file.is_open()) 和 if (!file.fail()) 有什么区别? 我应该使用什么来确定文件是否
也许是个伪问题,但我需要一个明确的答案。这些函数的返回有什么不同吗 int FileExists(const std::string& filename) { ifstream file(file
我已经尝试了几个小时了,但我终究无法让我的 DirectX12 应用程序编写一个简单的文件... 关于我的设置的一些信息: 更新了 Windows 10。 DirectX12 默认的“旋转立方体”应用
尝试使用 fstream 在 C++ 中读取文件。但是 is_open() 函数始终返回 0 结果,而 readline() 不读取任何内容。请参阅下面的代码片段。 #include #includ
我是一名优秀的程序员,十分优秀!