6.1.5 文本文件与二进制文件
来源:互联网 发布:陕西师大网络登录平台 编辑:程序博客网 时间:2024/05/16 16:11
6.1.5 文本文件与二进制文件
文本文件与二进制文件实际上没有太大的区别,一般来讲,文本文件仅用来存储可打印字符(如:字母、数字、空格等),文本文件也可以以二进制方式打开,如图6-6所示的是在UltraEdit-32中以二进制的方式查看文本文件的情形。
(点击查看大图)图6-6 文本文件的二进制查看方式 文本与二进制的另外一种区别体现在人们的习惯:在文本模式中,当我们谈及"65"时,它一般指代字符串"65",如图6-7所示,"65"是2个字符,它们在二进制中显示成十六进制的"0x3635"。
(点击查看大图)图6-7 文本文件中的"65" 但是在二进制模式下,当我们谈及"65"时,那一般都指代数值65,如图6-8所示的数值65的二进制内容(在十六进制中,65表示成0x41),一旦我们切换到文本查看模式,它则对应于ASCII码中的"A"字符。
(点击查看大图)图6-8 二进制文件中的数值65
可以看出,文本格式和二进制格式还是有差别的。如果以文本方式写入"65",而以二进制文件读取的话,则会认为它的值为0x3635,这样,就会给软件程序带来致命的差错。
在Windows API世界里,根本就没有所谓的文本文件的读写函数,所有的缓冲内容的访问都是通过char *指针完成的,至于其内容是文本还是二进制,则是应用程序的责任了。
现在动手
编写如下程序,体验文本与二进制内容的存取操作。
【程序 6-2】文本与二进制内容的存储
- 01 #include "stdafx.h"
- 02
- 03 int main()
- 04 {
- 05 char s1[4] = "65";
- 06 int n1 = 65;
- 07
- 08 //写
- 09 CFile file;
- 10 file.Open(_T("test.out"),
CFile::modeWrite | CFile::modeCreate);- 11
- 12 //写入文本"65"
- 13 file.Write(s1, sizeof(s1));
- 14 //写入数值65
- 15 file.Write(&n1, sizeof(n1));
- 16
- 17 file.Close();
- 18
- 19 //读
- 20 file.Open(_T("test.out"), CFile::modeRead);
- 21 char s2[4];
- 22 int n2;
- 23
- 24 //先读文本,再读数值
- 25 file.Read(s2, sizeof(s2));
- 26 file.Read(&n2, sizeof(n2));
- 27
- 28 printf("s2=%s/r/n", s2);
- 29 printf("n2=%d/r/n", n2);
- 30
- 31 //先读数值,再读文本
- 32 file.SeekToBegin();
- 33 file.Read(&n2, sizeof(n2));
- 34 file.Read(s2, sizeof(s2));
- 35
- 36 printf("s2=%s/r/n", s2);
- 37 printf("n2=%d/r/n", n2);
- 38
- 39 file.Close();
- 40 return 0;02 }
运行结果如图6-9所示。
(点击查看大图)图6-9 运行结果
这个例子告诉我们:在读文件时,其顺序应该和写文件的顺序一致,否则会带来不可预测的错误。
光盘导读
该项目对应于光盘中的目录"/ch06/CFileTest"。
====未完待续====
以上摘自《把脉VC++》第6.1小节的内容 ,转载请注明出处。
如果你想与我交流,请点击如下链接加我为好友:http://student.csdn.net/invite.php?u=113292&c=8913f87cffe7d533
- 6.1.5 文本文件与二进制文件
- 二进制文件与文本文件
- 文本文件与二进制文件
- 文本文件与二进制文件
- 文本文件与二进制文件
- 文本文件与二进制文件总结
- 文本文件与二进制文件
- 文本文件与二进制文件
- 文本文件与二进制文件
- 文本文件与二进制文件
- 文本文件与二进制文件
- 文本文件与二进制文件
- 二进制文件与文本文件
- 文本文件与二进制文件
- 文本文件与二进制文件区别
- 文本文件与二进制文件区别
- 文本文件与二进制文件
- 文本文件与二进制文件区别
- 进入微软的大学之路
- 转个念头看世界(9.9)
- 江城子 湖上与张先同赋
- Java多线程初学者指南(10):使用Synchronized关键字同步类方
- .NET 4.0并行计算基础系列文章发布
- 6.1.5 文本文件与二进制文件
- 多多指教
- 转个念头看世界 (9月09日)
- JAVA代码查错笔试题和JAVA编程题
- 补登昨天笔记。。。
- C语言零碎的一些注意事项(更新中)
- 静态内部类
- 这是个双向链表的C程序,谁能解释下他的步骤的含义,不胜
- 活动目录