C++语言程序设计

我们举一个例子：

| 程序12-20

#include "iostream.h"
void main()
{
int i;
cout<<"输入整数："<<endl;
cin>>i;
if (!cin){
cout<<"eof:"<<cin.eof()<<endl;
cout<<"fail:"<<cin.fail()<<endl;
cout<<"bad:"<<cin.bad()<<endl;
}else{
cout<<"correct."<<endl;
}
}

如果输入的是整数，那么将输出：correct。否则，程序输出：
eof:0
fail:2
bad:0
如果流状态为fail，表示出现格式化错误，流变为不可用。我们可以用clear( )函数，清除错误标志，使流变为可用：

| 程序12-21

#include "iostream.h"
void main()
{
ofstream out("out.txt",ios::nocreate);
if (!out){
cout<<"eof:"<<out.eof()<<endl;
cout<<"fail:"<<out.fail()<<endl;
cout<<"bad:"<<out.bad()<<endl;
}else{
cout<<"correct."<<endl;
}
}

该程序用来打开一个已存在的文件out.txt，如果out.txt确实在当前目录下已存在，则打开成功，程序输出：correct。否则，程序输出：
eof:0
fail:2
bad:0
表明文件打开失败，可以调用clear( )函数清除错误标志，然后重新调用正确的文件：
out.clear();
out.open("out1.txt",ios::nocreate);