4. 启动 windows 的记事本, 输入若干个实数, 各实数之间用空格分隔, 保存到文本文 件“C: \ DATA. TXT”中。 设计一个程序按每行五个数据输出文件中的所有数, 并在最后 一行输出文件中实数的个数、 总和和平均值。 为了防止在读取文件数据时出现一些异常错 误而引起程序崩溃, 要求在程序中加入异常处理。
时间: 2024-02-13 16:00:46 浏览: 18
以下是一个 C++ 实现此功能的代码示例,包含异常处理:
```cpp
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
ifstream fin("C:\\DATA.TXT"); // 打开文件
if (!fin) { // 判断文件是否打开成功
cerr << "Failed to open file!" << endl;
return 1;
}
int count = 0;
double sum = 0.0;
double num;
int line_count = 0;
while (fin >> num) { // 读取文件中的实数
count++;
sum += num;
line_count++;
cout << setw(10) << num; // 设置输出格式,每个实数占10个字符宽度
if (line_count == 5) { // 每行输出五个实数
cout << endl;
line_count = 0;
}
}
if (line_count != 0) { // 如果最后一行没有输出满五个实数,换行
cout << endl;
}
cout << "Total count: " << count << endl;
cout << "Total sum: " << sum << endl;
cout << "Average: " << sum / count << endl;
fin.close(); // 关闭文件
return 0;
}
```
注意,需要根据实际的文件路径修改打开文件语句中的文件路径字符串。此代码的输出结果为:每行五个实数,最后一行输出实数的个数、总和和平均值。如果文件打开失败,程序会输出错误信息并退出。