/*C++读入文本文件的操作和例子*/
/*写入文件中:
1、首先要创建一个ifstream的对象
2、文件打开是否成功
2、文件的打开
3、文件内容的输出(与cout的用法基本一致)
4、文件的关闭*/
//总结一下:与其对象inFile常搭配使用的函数有open(),is_open(),good(),getline(),get(),eof(),fail(),close();
#include<iostream>//该文件中包含istream类,而cin就是istream类的对象
#include<fstream>//该文件中包含ifstream类,而该类的对象可以由用户自定义(重点)
#include<cstdlib>//便于使用exit()终止程序
#define Maxsize 50
using namespace std;
int main() {
char filename[Maxsize];
ifstream inFile;
cin.getline(filename, Maxsize);//以行的形式进行读取
inFile.open(filename);//打开想要打开的文件名
if (!inFile.is_open()) {//检测文件是否成功打开用inFile.is_open()
cout << "文件名:" << filename << endl;
exit(EXIT_FAILURE);//EXIT_FAILURE是用于同操作系统通信的参数值
}
double value=0.0;
double sum=0.0;
int count = 0;
inFile >> value;//要在进行测试前将一个数字读取到value中
if (inFile.good()) {//为什么加这部分,因为inFile.good()是检测文件输入流状态的,当读到文件末,无法对文件末的最后一个数进行统计,所以加上该部分代码
count = 1;
}
while (inFile.good()) {
sum += value;
inFile >> value;
++count;
}
if (inFile.eof()) {//该eof()是检测其是否读取到文件内容的末尾处
cout << "文件读完" << endl;
}
else if (inFile.fail()) {//读取过程中是否发生了错误
cout << "文件存在内容与数字不匹配" << endl;
}
else
cout << "其他原因" << endl;
if (count == 0) {
cout << "文件中无内容" << endl;
}
else
{
cout << "读取的数字个数:" << count << endl;
cout << "总和:" << sum << endl;
cout << "平均值:" << sum/count << endl;
}
inFile.close();
return 0;
}
//简单测试文件的内容:
//程序运行结果: