【C++】期末复习题目练习day03文件读取写入

 补充一点知识点

一、文件写入

写文件步骤如下:

  1. 包含头文件

    #include <fstream>

  2. 创建流对象(自己起的流对象名字)

    ofstream ofs;

  3. 打开文件

    ofs.open(“文件路径”,打开方式);

  4. 写数据

    ofs << “写入的数据”;

  5. 关闭文件

    ofs.close();

打开方式解释
ios::in为读文件而打开文件
ios::out为写文件而打开文件
ios::ate初始位置:文件尾
ios::app追加方式写文件
ios::trunc如果文件存在先删除,再创建
ios::binary二进制方式

#include <fstream>

void test01()
{
	ofstream ofs;
	ofs.open("test.txt", ios::out);

	ofs << "1" << endl;

	ofs.close();
}

二、题目 

#include<iostream>
using namespace std;
#include<fstream>
int main(){
	ifstream file;
	double num[10];
	file.open("data.txt",ios::in);
	if(!file.is_open()){
		cout<<"不能打开"<<endl;
		return 1;
	}
	int i =0;
	while(!file.eof()&&i<6){//从file文件中写入数组,直到全部读取完,eof是文档最后一个字符 
		file>>num[i];
		i++;
	}
	double sum = 0;
	int count=0;
	for(int i=0;i<6;i++){
		if (num[i]>0){
			sum+=num[i];
			count++;
			
		}
	}
	int aver=sum/count;
	ofstream out;
	out.open("out.txt");
	out<<aver<<endl;
	out.close();
	return 0;
	
}

 我一开始犯了个问题 把数组大小改成了10 导致一直出错,原因是由于数组中有未初始化的元素,累加 sum 时可能会将这些未定义的值计算在内,导致求得的平均值 aver 是错误的。

调试结果:

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值