/*
文件的使用
*/
#include<iostream>
#include<fstream>
#include<cstdlib> //包含exit()
using namespace std;
const int Maxn = 200;
int main()
{
/*写入到文本文件并创建它*/
/*************************************************/
/*文件名*/
char file_names[Maxn];
/*读取文件时需要的数据*/
double file_datas[Maxn] = {18,19,18.5,13.5,14,16,19.5,20,18,12,18.5,17.5};
/*声明一个或多个ofstream变量并以自己喜欢的方式命名它,这个变量可以像cout一样使用他*/
ofstream outFile;
/*文件名,记得带后缀名*/
cin >> file_names;
/*创建新文件,如果文件存在,原来内容会全部丢失*/
outFile.open(file_names);
for (int i = 0; i < 12; i++) {
outFile << file_datas[i];//像cout一样的使用ofstream定义的变量
outFile << " ";//用空格将数字分开
}
outFile << endl;
/*关闭文件*/
outFile.close();
/*读取文本文件*/
/***********************************************/
/*声明一个或多个ifstream变量并以自己喜欢的方式命名它,这个变量可以像cin一样使用他*/
ifstream inFile;
/*打开这个文件,文件不存在、在另一个目录中、访问被拒绝、用户输入错误或省略了后缀名*/
inFile.open(file_names);
/*检查文件是否被成功打开,成功true,失败false*/
if (!inFile.is_open())
{
cout << "Could not open the file " << file_names << endl;
cout << "Program terminating.\n";
exit(EXIT_FAILURE);
}
double value;
double sum = 0.0;
int count = 0;
while (inFile >> value) { //bool情况下,inFile的结果为inFile.good(),即true or false
count++;
sum += value;
}
/*
inFile >> value;
while (inFile.good()) {
count++;
sum += value;
inFile >> value;
}
good()在不发生任何问题返回ture
*/
/*以下选择语句寻找文件结束的真正原因*/
//判断文件有没有超过EOF
if (inFile.eof()) {
cout << "End of file reached.\n";
}
//判断类型是否匹配
else if (inFile.fail()) {
cout << "Input terminated by data mismatch.\n";
}
else
cout << "Input terminated for unknown reason.\n";
if (count == 0) {
cout << "No data progressed.\n";
}
else
{
cout << "Items read:" << count << endl;
cout << "SUM:" << sum << endl;
cout << "Average:" << sum / count << endl;
}
/*关闭文件*/
inFile.close();
return 0;
}
c++文件
最新推荐文章于 2024-08-02 20:41:30 发布