All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
Visual C++ 6.0教程:函数的定义与调用
用SQL,SERVER记录站点日志_[SQL,Server教程]
ASP.NET,2.0服务器控件之复合控件概述_[Asp.Net教程]
SQL,Server2005,表分区三步曲_mssql学习_编程技术
5种易犯的PHP数据库错误_[PHP教程]
PHP针对配置文件操作的最常用四个ini函数_php资料_编程技术
sql,server的几个函数要记录_[SQL,Server教程]
visual c++中制作弹出式菜单
动态网页技术PHP的数组处理函数库_[PHP教程]
网页特效:在任何位置显示html菜单_JavaScript技术_编程技术
Reading number is top 10 pictures
NeedWallpaper10
这才是真正的人体艺术3
Absolutely shocked. National geographic 50 animal photographys3
西游日记3
人美胸美腿更美1
The woman fight much more than men
Ashlynn Brooke show proud chest measurement1
清醇靓丽的美眉
全身蕾丝丝质美臀
大年初五接财神
Download software ranking
Sora aoi‘s film--Lust fan wall
美女写真3
I'm come from Beijing2
Be there or be square
Tram sex maniac 2 (H) rar bag15
Boxer vs Yellow5
jdk1.6 for windows
打鸟视频
Unix video tutorial10
Eclipse-CALMSANNY (second edition)
qq published in(发表于) 2014/7/9 22:36:18 Edit(编辑)
C++文件流的操作

C++文件流的操作

C/C++文件流的操作

C/C++文件流

文件流是以外存文件为输入/输出对象的数据流。输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据。每一个文件都有一个内存缓冲区与之对应。这里主要讨论两种文件的操作。

3.3.1 ASCII 文件的操作

程序描述:从键盘读入一行字符,把其中的字母字符依次存放在磁盘文件f2.dat 中,再将此磁盘文件读入程序,将其中的小写字母改为大写字母,并存入磁盘文件f3.dat。

【源程序 3-3】

01 #include

02 using namespace std;

03 void save_to_file()

04 {

05 ofstream outfile("f2.dat",ios::out);

06 if(!outfile)

07 {

08 cerr<<"open f2.dat error!"<
09 exit(1); //退出程序

10 }

11 char c[80];

12 cin.getline(c,80); //从键盘读入一行字符

13 for(int i=0;c[i]!=0;i++)

14 if(c[i]>=65&&c[i]<=90||c[i]>=97&&c[i]<=122)

15 {

16 outfile.put(c[i]); //将字母字符存入磁盘文件f2.dat

17 cout<
18 }

19 cout<
20 outfile.close(); //关闭f2.dat 文件

21 }

22 void get_from_file()

23 {

24 char ch;

25 ifstream infile("f2.dat",ios::in|ios::nocreate);

26 if(!infile)

27 {

28 cerr<<"open f2.dat error!"<
29 exit(1);

30 }

31 ofstream outfile("f3.dat");

32 if(!outfile)

33 {

34 cerr<<"open f3.dat error!"<
35 exit(1);

36 }

37 while(infile.get(ch)) //流成员函数get 读入一个字符

38 {

39 if(ch>=97&&ch<=122) //判断是否为小写字母

40 ch=ch-32;

41 outfile.put(ch); //流成员函数put 输出字符存入f3.dat

42 cout<
43 }

44 cout<
45 infile.close(); //关闭磁盘文件f2.dat

46 outfile.close(); //关闭磁盘文件f3.dat

47 }

48 int main()

49 {

50 save_to_file();

51 get_from_file();

52 return 0;

53 }

程序说明:

(1) 第3 行,函数save_to_file()从键盘读入一行字符,并将其中的字母存入磁盘文件。

(2) 第5 行,定义输出文件流对象outfile,以输出方式打开磁盘文件f2.dat。

(3) 第22 行,函数get_from_file()从磁盘文件f2.dat 读入字母字符,将其中的小写字母改为大写字母,再存入f3.dat。

(4) 第25 行,定义输入文件流对象infile,以输入方式打开磁盘文件f2.dat。

知识点:

(1) 磁盘文件中的内容是ASCII 字符,但人们不能直接看到,可用DOS 环境下的TYPE命令查看。TYPE 命令格式为

TYPE <文件名>

(2) ASCII 文件的读/写有两种方法:

① 用流插入运算符“<<”和流提取运算符“>>”输入/输出标准类型的数据;

② 通过文件流的put,get,getline 等成员函数进行字符的输入/输出。

二进制文件的操作

程序描述:将以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。

【源程序 3-4】

01 #include

02 using namespace std;

03 struct student

04 {

05 string name;

06 int num;

07 int age;

08 char sex;

09 };

10 int main()

11 {

12 student stud[3];

13 int i;

14 ifstream infile("stud.dat",ios::binary);

15 if(!infile)

16 {

17 cerr<<"open error!"<
18 abort();

19 }

20 for(i=0;i<3;i++)

21 infile.read((char*)&stud[i],sizeof(stud[i]));

22 infile.close();

23 for(i=0;i<3;i++)

24 {

25 cout<<"NO."<
26 cout<<"name:"<
27 cout<<"num:"<
28 cout<<"age:"<
29 cout<<"sex:"<
30 }

31 return 0;

32 }

程序说明:

(1) 第14 行打开文件。

(2) 第18 行退出程序,与exit()函数的作用相同。

(3) 第21 行用成员函数读取二进制文件。

(4) 第22 行关闭文件。

知识点:

(1) 对二进制文件进行操作前应先打开文件,使用完毕后要关闭文件。打开文件要用

ios::binary 指定以二进制形式传送和存储。

(2) 可以一次性读入文件中的全部数据,将infile.read((char*)&stud[i],sizeof(stud[i]))语句改为infile.read((char*)&stud[0],sizeof(stud))即可。

(3) 二进制文件不是以ASCII 代码存储数据的,它将内存中的数据存储形式不加转换地传送到磁盘文件。因此,二进制文件中的信息不是字符数据,而是二进制形式的信息。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.