C++之检测文件结尾

  当使用文件作为输入流时,为了确保适时的结束文件读取操作,程序要靠检查文件尾来判断该何时停止读取。
常用的检查文件尾方法有两种:
  两种方式均已将 fin 与文件关联,即 均已声明 fin 输入流,并已调用 open 成员函数打开了文件。
第一种:
  该方式可以要求程序从文件中连续读取数字,直到没有更多的数字可供读取为止。代码如下:

1 int next;
2 while(fin >> next){
3  //用户代码
4 }

 


第二种:
  该方式利用每个输入文件流都有的 eof 成员函数来判断何时读完文件的全部内容。代码如下:

1 int number;
2 fin.get(number);
3 while( !fin.eof() ){
4  //用户代码
5  fin.get(number);
6 }

 

  当 eof 函数检测到文件尾,会返回 真,否则返回 假。
  注意,用该种方式必须保证要读取文件结尾之后,eof 函数才会反应。这就是为何本段代码 while 中用 fin.get(number);结尾的原因。

以上两种检测文件结尾在多数情况均可使用,但最好遵循以下原则:
  将输入作为文本处理并用 get 成员函数读取时,用 eof 成员函数方式。
  处理数值数据时,用第一种方式。

转载于:https://www.cnblogs.com/goodhx/p/5126331.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值