C++如何判断一个文件是二进制字符串 byte文件还是字符文件

如何查看二进制文件的文件内容?_百度知道
如何查看二进制文件的文件内容?
二进制文件的文件内容可借助第三方软件UltraEdit来查看。UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本(如果电脑配置足够强大),内建英文单字检查、C++ 及 VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。1)运行UltraEdit软件。2)菜单栏-文件-打开-选取一个二进制文件。3)打开这个文件。4)上图显示区域左侧是地址,中间部分是每个字节的16进制双字符表示,右侧区域显示是可见的单字节ASCII字符及双字节乱码。参考:
其他类似问题
为您推荐:
用UltraEdit这个软件
二进制文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁linux程序设计-文件(34)
&7423人阅读&&&
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。
  ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码:  11
     ↓     ↓    ↓    ↓
十进制码: 5     6    7    8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是按字符显示,因此能读懂文件内容。
  二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 01110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。
一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'/n',而二进制模式认为它是两个字符0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。
版权声明:本文为博主原创文章,未经博主允许不得转载。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
(12)(70)(61)(38)(126)(99)(97)(200)(71)(159)(64)(5)(3)(3)(1)(67)(23)c++读写二进制文件
曾经看过一个帖子http://pnig0s/563152,文中说c++读写二进制文件关键在于接口函数,用什么模式打开没有关系,我觉得那样讲是不对的。不过文章看一下也可以。
c++读写二进制文件,在与linux下可能会有不同的效果。本人写的一个小例子在linux下写入二进制数据正常,而在windows下面写入数据的过程中,竟然自动添加了0x25等等一些无意义的字节,找了好久才发现这个bug。
下面是正确的写法
void TestWriteBinary()
const char *pcwritefile = "fileBinary.txt";
ofs.open(pcwritefile, ios::out | ios::binary);
assert(ofs.is_open());
for (int i = 0; i < 100; ++i)
HashKey_S stHashK
stHashKey.uifirsthash = 1;
stHashKey.uisecondhash = 2;
ofs.write((const char*)(&stHashKey), sizeof(stHashKey));
ofs.close();
错误的写法是这样的(在linux下工作正常,windows下异常)
void TestWriteBinary()
const char *pcwritefile = "fileBinary.txt";
ofs.open(pcwritefile, ios::out);
assert(ofs.is_open());
for (int i = 0; i < 100; ++i)
HashKey_S stHashK
stHashKey.uifirsthash = 1;
stHashKey.uisecondhash = 2;
ofs.write((const char*)(&stHashKey), sizeof(stHashKey));
ofs.close();
仅仅是在打开文件的时候,没有加ios::binary而已。
同样在读文件的同时,也一定要加上ios::binary,用read读文件即可。
下面是c&#43;&#43;读写二进制的一些基础知识,写的不错:http://blog.csdn.net/kingstar158/article/details/6859379
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'C++如何把一个文本文件读取然后以二进制形式另存为一个文本文件_百度知道
C++如何把一个文本文件读取然后以二进制形式另存为一个文本文件
我是编程新手,一直搞不懂怎样把文本文件中的内容读取出来,求大家帮帮忙
提问者采纳
close();;{
fileOut& ofstream&nbsp:binary);&);&fileOut(&quot,&nbsp,可以参考一下#include&(getline(fileIn;using& fileOnamespace&nbsp.txt& while&int&& } fileIn不知道你是不是想问的这个;&&fileIn(&writefile.close();&&inputs& string&iostream&#include&string&gt,inputs))&main()&&{ ifstream&&lt:;fstream&#include&nbsp.txt&quot
谢谢。我的意思是把原文本文件的数据存储为二进制文件,第二个文本文件就是二进制文件
是二进制啊,写入模式设定为ofstream::binary了,虽然不是特别确定你要的二进制是不是这样的二进制
提问者评价
谢谢提示,我好像找到方法了
其他类似问题
为您推荐:
二进制的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 二进制字符串 byte 的文章

 

随机推荐