- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
while(true)
{
int a, c;
string b;
file >> a >> b >> c;
if( file.good() )
f(a, b, c);`
else
break;
}
此代码未读取 .txt 文件的最后一行。如果我将 file.good()
更改为 !file.fail()
它会起作用。为什么?
最佳答案
bad() --> 如果读取或写入操作失败,则返回 true。例如,在我们尝试写入未打开写入的文件或我们尝试写入的设备没有剩余空间的情况下。
fail() --> 在与 bad() 相同的情况下返回 true,但在发生格式错误的情况下也会返回 true,例如当我们尝试读取整数时提取了字母字符。
good() --> 它是最通用的状态标志:它返回 false 的情况与调用之前的任何函数返回 true 的情况相同。请注意,好的和坏的并不完全相反(好的一次检查更多状态标志)。
后面会详细说明。
关于c++ - !std::basic_ios::fail() 和 std::basic_ios::good() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686167/
以前有人遇到过这个错误吗?我不知道究竟是什么导致了这种情况: 1>...include\sstream(640): error : "std::basic_ios::basic_ios(const s
这是我的第一篇文章。 我看了很多题目,似乎我做的还不错,但是当我尝试编译下面的代码时,我又遇到了上面的错误: // Header file #include #include #include
我无法理解这个错误。这个错误不在我正在调试的类中。 (是吗?)错误是: c:\program files\microsoft visual studio 10.0\vc\include\fstream
收到此错误,我很确定它在 operator::basic_ios' : cannot access private member declared in class 'std::basic_ios'
while(true) { int a, c; string b; file >> a >> b >> c; if( file.good() ) f(a, b, c);` else b
我似乎无法发现这里的错误,其他文章对错误的答案有点模糊所以这里是我的。我收到此错误,我相信它与它试图打开的文件有关。我发布了整个 .cpp 文件,因为我不确定错误的来源。 #include #inc
我正在将一个大型 VC++ 6.0 应用程序转换为 VS2010,并且在其中一个项目中一直遇到此错误: error C2248: 'std::basic_ios::basic_ios' : canno
我发现自己对 rdstate() 标志反复感到困惑 - good()、bad()、eof() 、fail() - 以及它们在 basic_ios::operator!、operator bool 和
C++ IO 流的基类 std::basic_ios 定义了 operator void*() 以返回 !fail() 和 operator!() 返回 fail()。这让我想知道为什么我们根本需要
C++11 §27.5.4.2/21: void swap(basic_ios& rhs); Effects: The states of *this and rhs shall be exchang
我得到了以下错误,在花了数周时间(非常兼职)从我的代码中排除错误后,情况略有改善: 1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\
我正在使用 qteSTLib、C++(clang LLVM 8.0 版)编写文件读取单元测试。我有以下逐行读取文件的代码。 std::ifstream infile; try { infile
std::basic_ios has a public constructor : explicit basic_ios (std::basic_streambuf* sb); IMO,类拥有公共(p
在使用 GCC 5.2.1 编译的程序中,ifstream 的状态在到达文件末尾时不会切换到 basic_ios::eof() — 即,条件 if(eof()) 在到达文件末尾后评估为 false —
嘿,我收到一个错误,我认为这与从阅读其他帖子中复制 ofstream 变量有关,我已经尝试更改 std::ofstream outfil; 到 std::ofstream & outfil; 但是我得
嘿,我收到一个错误,我认为这与从阅读其他帖子中复制 ofstream 变量有关,我已经尝试更改 std::ofstream outfil; 到 std::ofstream & outfil; 但是我得
我正在将一些代码移植到 Darwin OS X,作为更改的一部分,我们从 gcc 转到 clang 编译器。 代码中有一个2005年的函数,在网上多处贴过。它为几个不同的旧版本 GCC 提供了功能,我
这个特定方法有问题,不知道如何解决!我得到的错误是上面的: "error C2248: 'std::basic_ios::basic_ios' : cannot access private memb
在创建一个简单的异常类扩展(我可以在其中更轻松地构建错误消息)时,我将错误隔离为以下简单代码: #include #include class myCout { public: std::
我的代码在到达 eof 并抛出异常时设置 std::failbit我怎样才能跳过eof异常 在 catch block 中,如果异常是因为 eof 但它不好,我会检查并跳过。 请建议我如何在下面的代码
我是一名优秀的程序员,十分优秀!