- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、实验目的和任务
1)掌握文件流的打开、关闭及使用的使用方法;
2)了解文本文件流与二进制文件流在操作上的区别。
3)掌握C++格式控制的各种方法,熟练应用格式控制的各种方式。
4)掌握C++文件流的操作,熟练应用C++文件流的各种操作。
二、实验设备介绍
软件需求: Visual C++ 6.0
三、实验内容
题目1:编一个程序用于复制文本文件
题目2: 编一个程序从一个文本文件source.txt中读入若干整数,用选择法将这些数据排成升序,将排序后的结果写入另一个文件文本文件target.txt中。注意两个文件均在d盘的data文件夹中。
在程序运行前,先准备好输入数据文件source.txt,放入d盘的data文件夹中,内容可以如下:
程序运行结束后,查看d盘的data文件夹中的结果文件target.txt内容是否正确。
四、实验原理
1复制文本文件
Iostream类具有成员函数getline(),其功能是允许从输入流中读取多个字符,并且允许指定输入终止字符(默认值是换行字符),在读取完后,从读取的内容中删除该终止字符。然而该成员函数只能将输入结果存在字符数组中,字符数组的大小是不能自动扩展的,造成了使用上的不便。非成员函数getline()能够完成相同的功能,但可以将结果保存到string类型的对象中,更加方便。这一函数可以接受两个参数,前两个分别表示输入流和保存结果的string对象,第三个参数可选,表示终止字符。是用非成员的函数getline的声明在string头文件中。
C++程序:
#includeiostream
#includefstream
using namespace std;
int main(int argc,char* argv[])
{ ifstream file_in(d:\\source.txt,ios::in);
ofstream file_out(d:\\target.txt,ios::out);
if(file_in.fail())
{ cerr文件 fu.txt 打开失败!endl;
return 1;
}
if(file_out.fail())
{ cerr文件 wei.txt 打开失败!endl;
return 1;
}
char nRead;
while(file_innRead)
file_outnRead;
file_in.close();
file_out.close();
return 0;
}
运行结果:
实验2
C++程序:
#includeiostream
#includefstream
using namespace std;
int main()
{ int i,j,temp,r[18];
const int n=18;
ifstream file_in(D:\\source.txt,ios::in);
if(file_in.fail())
{ cerr文件 source.txt 打开失败!endl;
return 1;
}
for(i=0;in;i++)
{
file_inr[i];
}
file_in.close();
for(i=0;in;i++)
for(j=i+1;jn;j++)
{
if(r[i]r[j])
{
temp=r[j];
r[j]=r[i];
r[i]=temp;
}
}
ofstream file_out(D:\\target.txt,ios::out);
if(file_out.fail())
{ cerr文件 target.txt 打开错误!endl;
return 1;
}
for(i=0;in;i++)
{
file_outr[i] ;
}
file_out.close();
return 0;
}
运行结果:
五、实验总结
通过本次试验,了解到了文本文件流与二进制文件流在操作上的区别,所谓文本流是指在流中流动的数据是以字符形式出现的。在文本流中,‘\n’被换成回车CR和换行LF的代码ODH和OAH。而当输出时替换成‘\n’。二进制文件流是指流动的是二进制数字序列,若流中有字符,则用一个字节的二进制ASCII码表示,若是数字,则用一个字节的二进制数表示。在流入流出时,对\n符号不进行变换。在程序编写调试时自己遇到了很多问题,还是不能灵活运用C++学习的相关知识,所以自己查阅了相关的资料,从而调试出了正确的结果,总之通过这次实验,自己收获颇多,在今后会多了解此方面的知识,将之灵活应用。
2 3 10 45
33 8 9 20
45 6
文档评论(0)