导航:首页 > 编程知识 > c编程中怎么自动识别二进制文件

c编程中怎么自动识别二进制文件

发布时间:2025-05-29 12:32:47

⑴ MFC读取二进制文件

|读写二进制文件参考代码:版
CFile rfile,wfile;
if(!权rfile.Open(_T("c://notepad.exe"),CFile::modeRead))
return 1;
if(!wfile.Open(_T("c://ee.exe"),CFile::modeCreate|CFile::modeWrite))
return 1;
BYTE buf[1024];
UINT readed;
while((readed=rfile.Read(buf,1024))>0)
{
wfile.Write(buf,readed);
}
rfile.Close();
wfile.Close();

⑵ 如何快速读取二进制文件


快速读取二进制文件的方法如下:
1、打开文件。

打开文件可以有两种方式,第一种可以使用fstream类的构造函数。fstream file("test.dat",ios_base::in|ios_base::out|ios_base::app); 另外一种方法就是使用
open函数。fstream file;file.open("test.dat",ios_base::in|ios_base::out|ios_base::app);
这样就可以打开一个可读写的文件了。如果文件不存在的话,就会创建一个新文件并且以读写方式打开。这里需要说明一点,如果文件不存在的话,open函数中第二个参数必须包含ios_base::out|ios_base::app,否则就不能正确创建文件。

2、写文件。
先进性写文件的操作否则读一个空文件是没有意义的。
既然是写二进制文件可以向文件中写入一个整形值。写二进制字符只能使用write
函数。但是write函数的原形是write(const char * ch, int size)。第一个参数是char *
类型,所以需要把将要写入文件的int类型转换成char *类型。这里的转换困扰了我好几天,不过终于弄明白了。代码如下。int temp; file.write((char *)(&temp),sizeof(temp));
3、读文件。
可以写文件了,读文件就好办多了。读文件需要用到read函数。其参数和write
大致相同,read(const char * ch, int size)。要把内容读到int类型变量中同样涉及到一个类型转换的问题。和写文件一样。int readInt; file.read((char(&readInt),sizeof(readInt)); 这样文件中的int值就读入到int型变量
readInt中了。

4、文件指针。
在文件的读写过程中往往需要对文件进行选择性读取。所以需要进行文件指针的移动。这是需要用到seekg和seekp函数。在fstream类中有两个文件指针,一个是读取文件的指针
,一个是写文件的指针分别用tellg和tellp文件来取得指针的位置。同样seekg和seekp两个函数分别是对这两个指针进行移动的函数。这两个函数的参数都是一样的。先对几个枚举类型进行一下说明:
ios_base::beg ——文件开始位置ios_base::cur ——文件当前位置ios_base::end ——文件末尾位置下面以seekg为例说明一下指针移动的方法:file.seekg(3) ——指针移动到第三个字符的位置file.seekg(ios_base::beg) ——指针移动到文件开头file.seekg(ios_base::end) ——指针移动到文件末尾file.seekg(-3,ios_base::cur) ——
指针当前位置向前移动三个字符file.seekg(3,ios_base::cur) ——指针当前位置向后移动三个字符file.seekg(3,file.tellg()) ——指针当前位置向后移动三个字符file.seekg(file.tellg()+3) ——指针当前位置向后移动三个字符

5、对文件操作完毕后别忘了关闭文件。

⑶ C语言怎么读取二进制文件中的数据放到一个300×300的二维数组里面

用 fopen 打开文件时 设 "rb" --用二进制方法打开,用于读
用 fread 读取数据,函数原型是:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
各参数意义,请查编译器帮助文件,这里就不开课了。
300×300 的数组需要的内存量较大,可动态分配,或用 全局量。
下面是程序例子。先建了一个2进制文件,里面存了300*300个float型数据。然后读这个文件里的内容。
#include<stdio.h>
float a[300][300];
int main()
{
FILE *fin, *fout;
int i,j;
for (j=0;j<300;j++) for (i=0;i<300;i++) a[j][i]=j*100+i;
fout=fopen("a.txt","wb");
for (j=0;j<300;j++)
fwrite(&a[j][0],sizeof(float),300,fout);
fclose(fout);
for (j=0;j<300;j++) for (i=0;i<300;i++) a[j][i]=0; //数组清零
fin=fopen("a.txt","rb"); //打开输入文件
for (j=0;j<300;j++)
fread(&a[j][0],sizeof(float),300,fin); //读文件
fclose(fin); //关闭文件
// 下面输出文件的左上角100个数据,和右下角100个数据供检查参考。
for (j=0;j<10;j++) {
for (i=0;i<10;i++)printf("%3.0f ",a[j][i]); printf("\n");}
printf("\n");
for (j=290;j<300;j++){
for (i=290;i<300;i++)printf("%g ",a[j][i]); printf("\n");}
return 0;
}

阅读全文

与c编程中怎么自动识别二进制文件相关的资料

热点内容
servlet数据库连接 浏览:795
重庆java培训机构排名 浏览:515
删除uc文件中的视频文件 浏览:858
美图软件文件夹分组名称 浏览:766
在手机上如何把文件里面的移出来 浏览:884
如何用电脑编程看vip电视剧 浏览:646
win7漫游配置文件 浏览:340
如何取消xp共享密码 浏览:844
sms网格如何保存为dat文件 浏览:406
arcgisjs图层顺序 浏览:587
怎么查找电脑里的视频文件在哪里设置 浏览:343
word文档表格字体下沉 浏览:92
wn10如何查看阴藏文件 浏览:891
男性护理app 浏览:612
编程掉头发严重怎么办 浏览:903
苹果下载必须轻点继续 浏览:473
word2007关闭邮件 浏览:320
看以前的港剧哪个app好用 浏览:947
能看见共享的文件夹但不能访问 浏览:60
建文件下什么软件 浏览:781

友情链接