CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

为什么在fstream.h中不包含ifstream的对象声明?

楼主jobs002(Oh! Office)2006-03-03 14:32:27 在 C/C++ / C++ 语言 提问

二进制文件和文本文件的主要有什么区别?? 问题点数:20、回复次数:6Top

1 楼adintr(www.adintr.com)(风流总被雨打风吹去)回复于 2006-03-03 14:35:20 得分 2

1.对   EOF   的处理方式,  
  ...(下面的继续啊)Top

2 楼jobs002(Oh! Office)回复于 2006-03-03 15:17:03 得分 0

谢谢顶了Top

3 楼ddddh(叶君临)回复于 2006-03-03 15:22:40 得分 8

 
   
  在unix下面貌似没有区别,在windows下面主要是\r\n的问题。  
   
  windows的文本文件使用\r\n作为换行符的,所以读出来以后会自动把\r\n转换成一个\n,写回去的时候,看到一个\n,会写\r\n进去。这样读出来的东西,和写回去的东西就不一致了。有时候就会出问题。  
   
  比如对一个文件算md5,你读出来的数据和文件里面的不同,算出来的MD5   hash肯定也不同。Top

4 楼jobs002(Oh! Office)回复于 2006-03-03 15:27:11 得分 0

谢谢,我的文件里面有时就会出现莫名奇妙的字符,还有一个问题,顶一顶Top

5 楼jobs002(Oh! Office)回复于 2006-03-03 20:19:16 得分 0

顶Top

6 楼ostrich2fly(ostrich2fly)回复于 2006-03-03 21:57:14 得分 10

打开方式的区别在于对换行的处理,文本模式把换行处理为"\n"    
  二进制模式打开文件,windows下换行为两个字节    
   
   
  另一个是和文件内容有关的,类似shell脚本和elf执行档之间的区别。    
  在这个意义上,所谓文本文件可以理解为仅包括了当前locale下的字符集,没有其他字符    
  的文件。    
  表现在视觉上,就是这种文件用文本编辑器打开没有乱码。    
   
  而二进制文件可能包括了一些当前locale下的字符集之外的字节。    
  用文本编辑器打开可能看到乱码或出现不能正常显示的字符。    
   
  因为有内容上的区别,所以在Windows/DOS下写程序时要注意打开的方式。    
  一般来说处理文本文件的时候(比如说你要写一个编译器,或者读配置文件)最好用t方式    
  打开,用fprint这样的函数写文件。    
  这样可以自动扩展\n。(大家都有在Windows下用记事本打开unix格式的文本文件的经历吧    
  ?)    
   
  处理二进指文件时(比方说处理位图、写结构体到文件中)最好用b方式打开。因为这些数    
  据的信息是基于字节的,再扩展0x0A就错了。    
   
  Top

相关问题

  • 如何在全局环境中使用某个fstream对象?
  • 在模板函数中调用ifstream对象
  • 关于ifstream对象的write方法与string对象的问题、在线等待。谢谢!
  • 标准C++中,对ifstream文件对象,如何取其文件大小?
  • .h
  • ---------ifstream------------
  • 关于fstream 的 ifstream 怎样找到文件的
  • 谁跟我解释一下这些东西:ostream,fstream,iostream,ifstream 有什么区别与联系?
  • 不行了,还是得求教,在线等。fstream的write方法可以把一个类的对象写入二进制文件吗?
  • dw对象和column对象

关键词

  • 文件
  • 二进制
  • 字符
  • 文本
  • 文本文件
  • 打开
  • 区别
  • 处理
  • 方式
  • 问题

得分解答快速导航

  • 帖主:jobs002
  • adintr
  • ddddh
  • ostrich2fly

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo