流状态的查询和控制
在C++Pimer上看了一段关于流状态的查询和控制的小程序,结果在调试时出现了点小问题,请教各位高手:
#include<iostream>
#include<string>
using namespace std;
void main()
{
int ival;
while (cin>>ival, !cin.eof())
{
if (cin.bad())
throw runtime_error("IO stream corrupted");
if (cin.fail())
{
cerr<<"Bad data,try again!"<<endl;
cin.clear(istream::failbit);
continue;
}
}
system("pause");
}
在调试时如果输入字母就一直在第二个if循环里跑个不停,一直输出Bad data,try again!,这是因为什么?
#include<iostream>
#include<string>
using namespace std;
void main()
{
int ival;
while (cin>>ival, !cin.eof())
{
if (cin.bad())
throw runtime_error("IO stream corrupted");
if (cin.fail())
{
cerr<<"Bad data,try again!"<<endl;
cin.clear(istream::failbit);
continue;
}
}
system("pause");
}
在调试时如果输入字母就一直在第二个if循环里跑个不停,一直输出Bad data,try again!,这是因为什么?
...全文
相关推荐
第4节:低代码开发平台-管理对象-列表组件-查询条件设置.pptx
这种查询方式可以是下拉框展示,也可以是平铺展示,为用户提供直观的选项。数据权限控制是另一个关键特性,它允许管理员限制用户查询数据的范围,例如,操作员只允许查询自己管辖的街道信息。
C++标准库<sstream>详解[可运行源码]
除了基本的读写操作,sstream库还提供了流状态检查、流复用和流位置管理等高级特性。这些特性为开发者提供了更多的控制能力,允许他们在执行流操作时更加细致地监控和管理流的状态。
流状态标志位
### 流状态操作函数流状态标志位可以通过一系列的函数进行查询和修改:- **测试函数**:`good()`、`fail()`、`bad()`和`eof()`分别用于测试`goodbit`、`failbit
The C++ Programming Language(21)
#### 21.9 字段和调整为了更好地控制输出的格式,C++提供了字段和调整选项。
学生通讯录管理系统
- **格式控制**:通过设置流状态标志来控制文件读写时的数据格式,比如使用`ios_base::skipws`跳过输入中的空白符,使用`ios_base::app`模式在文件末尾追加数据等。


