C++程序设计(PEARSON版)第三版13.1答案

(创建一个文本文件)编写程序,它创建一个名为Exercise13_1.txt的文件(若其不存在的话)。如果文件存在,将新数据附加在文件原内容之后。将随机生成的100个整数写入文件(文本I/O方式)。整数间用一个空格分隔。

值得注意的是题目要求每个数字之间空一格,因此在重复读取时,应该使用getline而不是其他的,另一点值得注意的是:文件被加载在原内容之后。

这篇文章有更新!

我对这道题目进行了新的思考,如果每次都像以前的代码一样通过整体替换的方式完成输入输出,会增加内存和CPU的压力,如果我们关注一下文件打开模式里的ios特性,使用ios::app|ios:out来组合操作这次的输入输出,会更加好,下面看看我的新代码:

#include<iostream>
#include<fstream>
#include<ctime>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
	srand(time(0));
	fstream inout;
	inout.open("Exercise13_1.txt",ios::out|ios::app);
	if(inout.fail())
	{
	cout<<"open failed,creat one."<<endl;
	ofstream inout("Exercise13_1.txt",ios::out|ios::app);	
	}
	for(int i=0;i<100;i++)
		inout<<rand()%100<<" ";
	string a;
	int count=0;
	if(inout.good())
	cout<<"Done"<<endl;
	inout.close();
	ifstream input("Exercise13_1.txt");
	while(!input.eof())
	{
		input>>a;
		if(inout.eof())
		break;
		cout<<a<<" ";
	//	count++;验证是否有多余的写入写出 
	}
	//cout<<endl<<count<<endl;
	return 0;
} 

我们看看可以直接用于交作业的代码:

#include<iostream>
#include<fstream>
#include<ctime>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
	srand(time(0));
	fstream inout;
	inout.open("Exercise13_1.txt",ios::out|ios::app);
	if(inout.fail())
	{
	cout<<"open failed,creat one."<<endl;
	ofstream inout("Exercise13_1.txt",ios::out|ios::app);	
	}
	for(int i=0;i<100;i++)
		inout<<rand()%100<<" ";
	return 0;
} 

下面是以前的代码:

这个比较简单,我们直接看代码:

下面的代码在Dev-C++上编译通过!

#include<iostream>
#include<fstream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main()
{
	string b;
	ifstream input("Exercise13_1.txt");
	bool Che=input.fail();
	if(input.fail())
	{
	cout<<"Open failed,going create one"<<endl;
	ofstream output;
	output.open("Exercise13_1.txt");	
	}
	else
	{
		while(!input.eof())
		{
		getline(input,b); 
		}
	}
	cout<<b;
	ofstream output;
	output.open("Exercise13_1.txt");	
	srand(time(0));
	if(Che==true)	
	for(int i=0;i<100;i++)
	{
		output<<rand()%1000<<" ";
	}	
	else
	{
		output<<b;
	for(int i=0;i<100;i++)
		{
			output<<rand()%1000<<" ";
		}
	}
	output.close(); 
	cout<<"Done,please check the file"<<endl;
	return 0;
}

 

C++程序设计 扫描,谭浩强编著,清华大学出社,2004年6月第一。 注意:其他两卷在本网页下面我的其它资源里可以找到 内容简介 C++是近年来国内外广泛使用的现代计算机语言,它既支持面向过程的程序设计,也支持基于对象和面问对象的程序设计。国内许多高校已陆续开设了C++程序设计课程。但是由于C++涉及概念很多,语法比较复杂,内容十分广泛使不少人感到学习难度较大,难以人门。 本书作者深入调查了我国大学的程序设计课程的现状和发展趋势参阅了国内外数十种有关C++的教材,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律。在本书中做到准确定位,合理取舍内容,设计了读者易于学习的教材体系,并且以通俗易懂的语言化解了许多复杂的概念,大大减少了初学者学习C++的困难。 考虑到许多读者在学习C++前未学过其他语言本书把入门起点降低,读者不需要具备C语言的基础。本书包括14章,分为4 篇:基本知识面向过程的程序设计;基于对象的程序设计;面向对象的程序设计。本书内容全面,例题丰富,概念清晰,循序渐进,易于学习。 本书是依据ANSI C++标准进行介绍的,引导读者从开始就按标准C++的规定编程。本书配有两本辅导教材,即《C++程序设计题解与上机指导》 和《C++编程实践指导》。 本书是大学各专业学生学习C++的基础教材,也是适于初学者学习的教材。即使没有教师讲授,读者也能看懂本书的大都分内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值