标准输入重定向为文件并判断文件状态(P281)
/*
在iOS类中还有几个与流状态相关的成员函数,可在程序中直接使用。
(1)返回流是否结束
int eof() const; 函数返回eofbit的值。
使用eof()函数测试是否到达文件尾,当文件操作结束遇到文件尾时,函数返回1;否则返回0.
(2)返回流是否处于正常状态
int fail()const;
返回failbit状态,以判断流操作是否失败。
failbit表示发生流格式错误,但缓冲区中的字符没有丢失。这种错误通常是可以修复的。
(3)判断流是否正常
int good() const;
int operator void *();
如果eofbit、failbit和badbit全部都没有被置位(即均为0),则返回1(true),否则返回0(false)。
(4)返回流是否处于失败状态
int bad()const;
int operator void !();
如果eofbit、failbit和badbit中有一位被置位(即均为1),则返回1(true),否则返回0(false)。
(5)返回状态字
int rdstate()const;
该函数返回流的当前状态。
(6)恢复状态字
void clear(int nStata = 0);
该函数恢复或设置状态字。默认值为0,即将流状态恢复为正常。
*/
#include <iostream>
using namespace std;
int main()
{
int x,count,sum=0;
freopen("input.dat","r",stdin);
for(count=0;count<10;count++)
{
cin>>x;
if(cin.eof()) break;
else sum += x;
}
cout<<"前"<<count<<"个整数的平均值 ="<<1.0*sum/count<<endl;
return 0;
}

浙公网安备 33010602011771号