欢迎来到天天文库
浏览记录
ID:51671724
大小:35.22 KB
页数:5页
时间:2020-03-14
《二进制文件的读写以及相关心得.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、二进制文件读写分析有关TXT文件以及bin文件处理的测试代码intmain(){//fstreamfile("D:\test.dat",ios_base::in
2、ios_base::out
3、ios_base::app);fstreamfile;file.open("D:\test1.dat",ios_base::out);{inttemp[10]={0x11,0x13,0x14,0x1F,0x1D,0x11,0x11,0x12,0x11,0x11};inttemp1[10];file.write((
4、char*)temp,sizeof(temp));file.close();file.open("D:\test1.dat",ios_base::in);file.read((char*)temp,sizeof(temp));unsignedinti;cout<5、e.open("D:\test1.dat",ios_base::out);temp1[6]=0x16;file.write((char*)temp1,sizeof(temp));file.close();}file.open("D:\test1.dat",ios_base::out6、ios_base::app);unsignedchartemp[10]={'a','b','a','a','a','d','a','C','a','a'};test*test1=(test*)malloc(sizeof(7、test));test1->projectId='U';test1->password=0x12;for(inti=0;i<10;i++){test1->someThings[i]=temp[i];}test1->sm=(unsignedlong)0x41;test1->fuck='M';file.write((char*)test1,sizeof(test));file.close();test*test2=(test*)malloc(sizeof(test));file.open("D:\test8、1.dat",ios_base::in);file.seekg(0x28);file.read((char*)test2,sizeof(test));for(inti=0;i<10;i++){cout<someThings[i]<我一直以为自己很熟悉如何使用C/C++中的二进制文件,可今天测试的时候突然发现程序生成的二进制文件和文本文件一样。比如:FILE*fp=fopen("binary","w9、b");//FILE*fp=fopen("character.txt","w");fprintf(fp,"countis%d",250);上述代码一个使用的是textfilemode,一个是binaryfilemode,但结果生成的二进制文件中保存的仍然是ASCII码,直接用记事本就可以打开查看。要说区别,主要是换行符的区别,binaryfile的换行符为,而textfile的换行符为,仅此而已,我就想怎么回事啊,我明明是用二进制模式打开的文件呀,怎么里面直接保存的还是ASCII10、码?也就是说保存125这个数字还是会占用3个字节,而不是我想象中那样只占一个字节!后来我就换用C++,结果还是一样,代码如下:ofstreamfs("binary",ios::binary);//ofstreamfs("character.txt");inti=32765;fs<11、C/C++中将数据以二进制形式文件输出,与你打开文件时的模式没有关系,关键是取决于你调用哪个函数往文件里写东西!!只有使用fwrite和fs.write()函数才能以二进制形式输出到文件中,调用puts、fprintf、<<等函数输出的都是ASCII文本,尤其需要注意的是类似于上面代码段中那样,在C++中,即使你用fs<
5、e.open("D:\test1.dat",ios_base::out);temp1[6]=0x16;file.write((char*)temp1,sizeof(temp));file.close();}file.open("D:\test1.dat",ios_base::out
6、ios_base::app);unsignedchartemp[10]={'a','b','a','a','a','d','a','C','a','a'};test*test1=(test*)malloc(sizeof(
7、test));test1->projectId='U';test1->password=0x12;for(inti=0;i<10;i++){test1->someThings[i]=temp[i];}test1->sm=(unsignedlong)0x41;test1->fuck='M';file.write((char*)test1,sizeof(test));file.close();test*test2=(test*)malloc(sizeof(test));file.open("D:\test
8、1.dat",ios_base::in);file.seekg(0x28);file.read((char*)test2,sizeof(test));for(inti=0;i<10;i++){cout<someThings[i]<我一直以为自己很熟悉如何使用C/C++中的二进制文件,可今天测试的时候突然发现程序生成的二进制文件和文本文件一样。比如:FILE*fp=fopen("binary","w
9、b");//FILE*fp=fopen("character.txt","w");fprintf(fp,"countis%d",250);上述代码一个使用的是textfilemode,一个是binaryfilemode,但结果生成的二进制文件中保存的仍然是ASCII码,直接用记事本就可以打开查看。要说区别,主要是换行符的区别,binaryfile的换行符为,而textfile的换行符为,仅此而已,我就想怎么回事啊,我明明是用二进制模式打开的文件呀,怎么里面直接保存的还是ASCII
10、码?也就是说保存125这个数字还是会占用3个字节,而不是我想象中那样只占一个字节!后来我就换用C++,结果还是一样,代码如下:ofstreamfs("binary",ios::binary);//ofstreamfs("character.txt");inti=32765;fs<
11、C/C++中将数据以二进制形式文件输出,与你打开文件时的模式没有关系,关键是取决于你调用哪个函数往文件里写东西!!只有使用fwrite和fs.write()函数才能以二进制形式输出到文件中,调用puts、fprintf、<<等函数输出的都是ASCII文本,尤其需要注意的是类似于上面代码段中那样,在C++中,即使你用fs<
此文档下载收益归作者所有