c++输入输出流实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四输入输出流

实验课程名:面向对象程序设计(C++)

专业班级:学号:姓名:

实验时间:实验地点:指导教师:

代码分析:

1)在输入时调用getline()以换行符作为输入姓名时的结束标志,已达到输入空格的目的

2)输出时采用resetiosflags(ios::right)实现结束向左对齐,用setw(8)实现输出域宽为8,使用一系列的格式控制字符来实现输出格式的控制。

2. 重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。商品的信息由编号、商品名和价格。假如商品类Merchandise的框架如下:class merchandise{

public:

Merchandiss();

~Merchandiss();

friend istream& operator>>(istream& in,Merchandiss& s);

friend ostream&operator<<(ostream& out,Merchandiss& s);

private:

int no;

char *name;

double price;

};

要求实现该类,并编写以下的main函数对该类进行操作。

int main()

{ Merchandise mer;

cin>>mer;

cout<

return 0;

}

实验代码:

#include

using namespace std;

class merchandise{

out<

return out;

}

int main()

{

merchandise mer;

cin>>mer;

cout<

return 0;

}

实验结果:

实验分析:

先定义一个商品的类,构造函数定义为无参函数在函数体中将name置为空,其他为0.在重载>>时使用getline函数,输入name以’\n’作为结束标记重载<<时直接输出。在主函数中调用这些函数实现输入输出的功能。

3.将一个源文件复制为两个不同名目的文件,源文件与目的文件均用构造函数打开,使用成员函数get与put复制第一个目的文件,使用getline与插入运算符复制第二个目的文件。(提示:用get函数将输入文件流对象的指针指向文件尾后,无法将该指针移到文件首位置。所以只能定义两个输入文件流对象打开同一源文件,用于两种方式的文件

copyfile_c();

cout<<"a文?件t中D的Ì?内¨²容¨Y为a:êo";

display("a.txt");

cout<<"b文?件t中D的Ì?内¨²容¨Y为a:êo";

display("b.txt");

cout<<"c文?件t中D的Ì?内¨²容¨Y为a:êo";

display("c.txt");

return 0;

}

实验结果:

定义几个函数分别实现:创建文件、复制文件、读取文件中的内容到显示器在主函数中调用创建函数,创建一个文件a,调用复制文件的函数将a中的

实验分析:

定义三个函数分别实现:创建文件,排序,输出文件。排序采用冒泡排序将平均成绩排序,若前面的大于后面的,将各个对应项交换,达到排序的目的。在主函数中调用这三个函数,实现程序的功能

5. 编写一个程序,将两个文本文件连接成一个文件,然后将此文件中所有小写字母转换成大写字母,并打印出来。

实验代码:

#include

#include

#include

using namespace std;

void createfile(char *filename)

{

ofstream outfile(filename);

if(!outfile)

{

cerr<<"open file error!"<

exit(1);

}

char str[80];

cin.getline(str,80);

int i=0;

infile.close(); //关?闭À?文?件t流¢¡Â

outfile.close();

cout<

}

int main()

{

cout<<"请?输º?入¨?a文?件t中D的Ì?数ºy据Y:êo";

createfile("a.txt");

cout<<"请?输º?入¨?b文?件t中D的Ì?数ºy据Y";

createfile("b.txt");

system("copy a.txt+b.txt c.txt");

change();

copyfile();

return 0;

}

实验结果:

int c = 0;

for(i=201;i<=400;i++)

{

if(judge(i))//若i是素数,则将i存入文件中

{

outfile<

c++;

if(c%5==0)

{

cout<

outfile<

}

}

}

cout<

outfile.close();

}

int main()

{

createfile();

return 0;

}

实验结果:

相关文档
最新文档