c++写,文件操作 从键盘读入一行字符,把其中的数字字符依次存放到文件 number.txt 中。再从文件 number.txt 中, 读出 5 个整数放在整型数组中,并求出其中的最大值、最小值和平均值。
时间: 2024-09-07 22:01:00 浏览: 34
在 C++ 中,文件操作通常涉及到`fstream`库。下面是一个简单的示例程序,它实现了你描述的功能:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
int main() {
// 打开文件 for writing (追加模式)
std::ofstream outfile("number.txt", std::ios::app);
if (!outfile) {
std::cerr << "Error opening file." << std::endl;
return 1;
}
char input[100];
int num;
while (std::cin.getline(input, sizeof(input))) {
for (size_t i = 0; i < strlen(input); ++i) {
if (isdigit(input[i])) { // 检查是否为数字字符
num = input[i] - '0'; // 转换为整数
outfile << num << ' '; // 写入文件
}
}
outfile << '\n'; // 结束行
}
outfile.close();
// 读取文件并计算数组元素
std::ifstream infile("number.txt");
if (!infile) {
std::cerr << "Error opening file for reading." << std::endl;
return 1;
}
std::vector<int> numbers(5);
for (int i = 0; i < 5 && infile >> numbers[i]; i++) {} // 读取前5个整数
if (i == 5) {
std::cout << "Didn't read all five integers!" << std::endl;
} else {
int max_num = *std::max_element(numbers.begin(), numbers.end());
int min_num = *std::min_element(numbers.begin(), numbers.end());
double average = accumulate(numbers.begin(), numbers.end(), 0.0) / numbers.size();
std::cout << "Max value: " << max_num << ", Min value: " << min_num << ", Average: " << average << std::endl;
}
infile.close();
return 0;
}
```