要求:
(1)必须包含头文件fstream
(2)头文件fstream定义了一个用于处理输入的ifstream类
(3)需要声明一个或多个ifstream变量(对象),并对其命名;
(4)必须指明名称空间std;
(5)需要将ifstream对象与文件关联起来;方法之一是使用open()方法;
(6)使用完文件后,应使用close()函数将其关闭;
(7)可结合使用iftream对象和运算符>>来读取各种类型的数据;
(8)可以结合使用ifstream对象和get()方法来读取一个字符,使用ifstream对象和getline()来读取一行字符;
(9)可以结合使用ifstream和eof()、fail()方法来判断输入是否成功;
(10)ifstream对象本身被用作测试条件时,如果最后一个读取操作成功,它将被转换为布尔值True,否则被转换成false;
1、声明ifstream对象:
IfstreaminFile;
2、将ifstream对象与特定的文件关联起来:
inFile.open("文件名");
Char filename[50];
Cin>>filename;
Fin.open(filename);
3、检查文件是否被成功打开:
inFile.open("文件名");
If(!inFile.is_open()){
Exit(EXIT_FAILURE);
}
综合示例:
#include<iostream>
#include<fstream>
#include<cstdlib>//support for exit()
using namespace std;
const int SIZE = 60;
int main() {
charfilename[SIZE];
ifstreaminFile;
cout<< "Enter name of data file : ";
cin.getline(filename,SIZE);
inFile.open(filename);
if(!inFile.is_open()) {
cout<< "Could not open the file!!! " << filename <<endl;
cout << "程序已终止!"<< endl;
exit(EXIT_FAILURE);
}
doublevalue;
doublesum = 0.0;
intcount = 0;
inFile>> value;
while(inFile.good()) {//while input good and at EOF
++count;
sum+= value;
inFile>> value;
}
if(inFile.eof()) {
cout<< "End of file reached!!!\n";
}
elseif (inFile.fail()) {
cout<< "Input terminated by data mismatch!!!\n";
}
else{
cout<< "Input terminated for unknown reason\n";
}
if(count == 0) {
cout<< "No data processed!\n";
}
else{
cout<< "Items read: " << count << endl;
cout<< "Sum :" << sum << endl;
cout<< "Average: " << sum / count << endl;
}
inFile.close();
return0;
}