项目12练习

这段代码展示了如何从用户输入读取整数并保存到data.txt文件中,每行最多10个整数。同时,它还演示了如何从该文件读取数据,找出最大值、最小值和平均值。程序会检查用户输入的有效性,并在输入错误时提示重新输入。在读取文件后,程序计算并输出相应统计信息。
摘要由CSDN通过智能技术生成

输入任意多个整数, 把这些数据保存到文件data.txt中.
如果在输入的过程中, 输入错误, 则提示用户重新输入.
直到用户输入结束(按ctrl + z)
[每行最多保存10个整数]

代码实现

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
	int data;
	int n = 0;
	ofstream outFile;
	outFile.open("data.txt");

	if (!outFile.is_open()) {
		cout << "文件打开失败" << endl;
	}
	while (1)
	{
		cout << "请输入数据【Ctrl+Z结束输入】" << endl;
		cin >> data;

		if (cin.eof()) {
			break;
		}

		//判断是否输入正确的数据
		while (cin.fail())
		{
			cin.clear();	//清楚错误标志
			cin.ignore(std::numeric_limits<streamsize>::max(), '\n');	//清楚缓冲区中的所有数据
			//std::numeric_limits<streamsize>::max() io支持输入的最大值

			cout << "输入内容有误,请重新输入" << endl;
			cin >> data;
		}
		n++;

		outFile << data << "\t";
		if (n%10 == 0) {
			outFile << endl;
		}	
	}	
	outFile.close();
	
	return 0;
}

从上个练习中的num.txt文件读取各个整数, 打印出最大值和最小值, 以及平均值

代码实现

#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main() {
	int data;
	int min = 0;
	int max = 0;
	int num = 0;
	int n = 0;
	vector<int> datas;
	ifstream inFile;
	inFile.open("data.txt");

	if (!inFile.is_open()) {
		cout << "文件打开失败" << endl;
	}

	//先读一条数据,给min等赋值
	inFile >> data;
	min = data;
	max = data;
	num += data;
	n++;

	while (1)
	{
		inFile >> data;
		if (inFile.eof()) {
			break;
		}
		
		if (min > data) {
			min = data;
		}else if(max < data){
			max = data;
		}
		num += data;
		n++;
//		datas.push_back(data);
	}

/*
	for (auto i = datas.begin(); i != datas.end(); i++)
	{
		min = datas[0];
		if (min > *i) {
			min = *i;
		}

		if(max < *i){
			max = *i;
		}

		num += *i;
		avg = num / datas.size();
	}	*/
	cout << "最小值:" << min << endl;
	cout << "最大值:" << max << endl;
	cout << "平均值:" << num/n << endl;

	cout << " " << num << endl;
	cout << " " << n << endl;

	inFile.close();
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值