c++学习笔记
来源:互联网 发布:景安网络备案幕布 编辑:程序博客网 时间:2024/05/19 14:51
C++学习笔记
Cin.clear()用法
Cin包含一个描述流状态的数据成员。流状态由三个ios_base元素组eofbit,badbit,failbit
其中每个元素都是一位,可以是1或者是0,当cin操作到达文件末尾时,它将设置eofbit;当cin操作未能读取到预期的字符时它将设置failbit。I/O失败也可能将failbit设置为1,在一些无法诊断的失败破坏流时,badbit元素将被设置。当全部三个状态都设置为0时,说明一切顺利。程序可以检查流状态并使用这种信息来决定下一步做什么。
流状态
成员
描述
Eofbit
如果文件到达文件尾,则设置为1
Badbit
如果流被破坏,设置为1,例如,文件读取错误
Failbit
如果输入操作没能读取预期的字符或者是输出操作没能写入预期的字符,设置为1
Goodbit
另一种表示0的方法
Good()
如果流可以使用(所有的位被清除),返回true
Eof()
如果eofbit被设置,返回true
Bad()
如果 badbit被设置,返回true
Fail()
如果badbit或者failbit被设置,返回true
Clear (iostate s)
将流状态设置为s,s的默认值为0
Cin.clear()其实就是清除cin流的错误状态
例子:
#include<iostream>
usingnamespace std;
intfill_array(double arr[],int limit)
{
double temp;
int i;
for(i=0; i<limit; i++)
{
cout<<"inter"<<i+1<<endl;
cin>>temp;
if(!cin) //判断是否是错误的类型(虽然题目是double型的,输入int型没问题),如果类型错误,failbit被设置为1,fail()返回true,cin被标记为错误,不可用;
{
cin.clear(); //此时用cin.clear()来清除错误状态,使failbit设置为0;现在可用
while(cin.get()!='\n')
continue;
cout<<"bad input"<<endl;
break;
}
else if(temp<0)
break;
arr[i]=temp;
}
return i;
}
int main()
{
double arr[100];
int limit=100;
int a;
a= fill_array(arr,limit);
for(int j=0;j<a;j++)
cout<<arr[j]<<endl;
return 0;
}
- C++/C学习笔记
- 【C/C++】STL学习笔记
- C/C学习笔记/导言
- C/C学习笔记/结构
- 【c/c++】学习笔记1
- C学习笔记1
- TPC-C学习笔记
- c语言学习笔记
- C语言学习笔记
- C语言学习笔记
- 学习笔记之c
- C#-学习笔记
- Objective-C学习笔记
- C++PRIMER学习笔记
- C学习笔记
- C 学习笔记
- C/C++学习笔记
- 1.C学习笔记
- 解决Android与服务器交互大容量数据问题
- C++程序员应聘常见面试题深入剖析
- gcc编译报错:程序中有游离的‘\357’‘\273’‘\277’等
- Problem 15:Lattice paths
- webservice
- c++学习笔记
- 32位64位操作系统基本数据类型字节大小 2014-03-12 09:44
- 梦想
- ReadFileUsingJFileChooser
- JS-中对表单处理
- 局域网内使用路由器级联多台设备
- java之代理
- visual studio 对齐代码快捷键
- android学习日记-1 从android 到apk的过程