当前位置:首页 » 编程语言 » c语言按协议读取二进制文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言按协议读取二进制文件

发布时间: 2022-08-16 02:28:21

‘壹’ c语言编程作业 急求 (读取2进制文件 输出16进制)万分感谢

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int
main(int
argc,
char
*argv[])
{
char
aa[]
=
"0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111";
char
bb[20];
char
cTmp[5];
int
tmp
=
0;
char*
p
=
NULL;
memset(bb,
0x00,
sizeof(bb));
memset(cTmp,
0x00,
sizeof(cTmp));
p
=
aa;
sscanf(p,
"%[0,1]",
cTmp);
while(NULL
!=
(p
=
strstr(p,
cTmp)))
{
sprintf(bb,
"%s%X",
bb,
strtoul(cTmp,0,2));
p
=
p
+
strlen(cTmp)
+
1;
sscanf(p,
"%[0,1]",
cTmp);
}
printf("%s",
bb);
}
大概就是这么一个思路,主要用到的就是strtoul函数。
你改成fscanf估计就好使。

‘贰’ C语言读取二进制文件

之前好像哪看到过一篇C++的读取二进制~~嘎嘎~~
ps:你都九级了,好高~~

‘叁’ C语言二进制文件的读取问题

C语言中二进制文件的读取要用fread和fwrite来实现。
fwrite()与fprintf()是不同的。
fwrite将写入的数据作为文件的磁盘内容保存。fprintf将写入的数据的每个字符所对应的ASCII码作为文件的磁盘内容保存。fprintf做了一个转换的工作。
当打开文件时,记事本会自动把文件的磁盘内容作为ASCII码转换成对应的字符,然后再显示出来,即显示的是文本内容而不是磁盘内容。
例如,用fwrite向文件写入“65”时,文件的磁盘内容就是保存的65(磁盘上以二进制表示)。当用记事本打开文件时,记事本会读到65,并把65看作一个ASCII码,再把对应的字符“A”显示出来。因此屏幕上看到的文本内容是“A”。
而用fprintf向文件写入“65”时,文件的磁盘内容保存的是“6”和“5”这两个字符对应的ASCII码,分别是54和53。因此文件的磁盘内容是54和53。当用记事本打开文件时,记事本读到54,就显示出对应的“6”。再读到53,就显示出对应的“5”。

‘肆’ c语言怎么用二进制方式读取文件

C语言中二进制文件的读取要用fread和fwrite来实现。 fwrite()与fprintf()是不同的。 fwrite将写入的数据作为文件的磁盘内容保存。fprintf将写入的数据的每个字符所对应的ASCII码作为文件的磁盘内容保存。fprintf做了一个转换的工作。

‘伍’ c语言读二进制文件

#include <stdio.h>

main( )
{
FILE *fp;
float data[6];
int i;
/*打开文件*/
fp=fopen("yibin","rb");
if(fp==null) exit(0);
/*从文件中读6个浮点到缓冲区data中*/
fread(data,sizeof(float),6);
/*显示缓冲区的内容*/
for(i=0;i<6;i++)
printf("%f\n",data[i]);
return 0;
}

‘陆’ c语言怎么读取二进制文件

main()
{
FILE * stream;
int i;
stream = fopen("/tmp/fwrite","r");
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;i<nmemb;i++)
printf("name[%d]=%-20s:size[%d]=%d/n",i,s[i].name,i,s[i].size);
}
供参考

‘柒’ 在c语言中如何打开二进制文件

文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。


具体的说:

C规定了标准输入输出函数库,用fopen()函数打开文件。fopen()函数的调用方式一般为:

FILE*fp;//定义一个文件类型的指针变量fp
fp=fopen(文件名,使用文件方式);


使用文件方式见下表:

"r"(只读) 为输入打开一个文本文件

"w"(只写) 为输出打开一个文本文件

"a"(追加) 为追加打开一个文本文件

"rb"(只读) 为输入打开一个二进制文件

"wb"(只写) 为输出打开一个二进制文件

"ab"(追加) 为追加打开一个二进制文件

"r+"(读写) 为读/写打开一个文本文件

"w+"(读写) 为读/写创建一个文本文件

"a+"(读写) 为读/写打开一个文本文件

"rb+"(读写) 为读/写打开一个二进制文件

"wb+"(读写) 为读/写创建一个二进制文件

"ab+"(读写) 为读/写打开一个二进制文件

‘捌’ c语言如何读写二进制

详细:http://hi..com/gibbon_ho/blog/item/9ca853e68447c42bb9382086.html

我一直觉得二进制文件读写是个很容易的事,所以一直没在意,最近在写一个http客户端,实现文件下载的时候,发现总有问题,后来才发现是忘记写文件用二进制方式,惭愧的很啊。然后,就在网上搜索了一下,发现通过C语言实现二进制文件读写的资料居然出奇的少,这让我很愤怒,因为虽然这东西很简单,但是对于初学者,往往会需要花很长的时间去弄,一旦明白,又发现花的时间很不值得,罢了,这里通过一个文件拷贝的例子来讲讲二进制文件的读写吧。先介绍函数,我们一共要用到三个函数,fopen,fread,fwrite。二进制读写的顺序是用fopen以二进制方式打开读写文件,然后使用fread和fwrite两个函数将数据写入二进制文件中。下面我们看看一个拷贝程序的源码:

Copy.c:#include <stdio.h>

#include <stdlib.h>

#define MAXLEN 1024

int main(int argc, char *argv[])

{

if( argc < 3 )

{

printf("usage: %s %s\n", argv[0], "infile outfile");

exit(1);

}

FILE * outfile, *infile;

outfile = fopen(argv[2], "wb" );

infile = fopen(argv[1], "rb");

unsigned char buf[MAXLEN];

if( outfile == NULL || infile == NULL )

{

printf("%s, %s",argv[1],"not exit\n");

exit(1);

}

int rc;

while( (rc = fread(buf,sizeof(unsigned char), MAXLEN,infile)) != 0 )

{

fwrite( buf, sizeof( unsigned char ), rc, outfile );

}

fclose(infile);

fclose(outfile);

system("PAUSE");

return 0;

}

‘玖’ 请问如何用C语言显示读取的二进制文件内容,以二进制的形式显示,最好有具体的函数,谢谢

#include <stdio.h>
#include <stdlib.h>

//PRINTBIT 用于把一无符号整数翻译成二进制串
void PRINTBIT(unsigned int number)
{

unsigned int i;
unsigned int ckecker=1;//ckecker 用于指示由右至左的位数,初置设为 1

ckecker<<=8-1;//将 ckecker 中非零位移到其机器表示的最左边

//下一语句从左至右打印各位,每四位之间留一空隔
for (i=1;i<=8;i++)
{
//打印 ckecker 非零位所对应的 number 中对应位
putchar((number & ckecker)?'1':'0');
if (i%4==0)//每4位用空格隔开
putchar(' ');
ckecker>>=1; //准备打印 number 中的下一位
}

putchar('\n');

}

int main(void)
{
FILE *fp;
char *filename = "in1.dat";
char ch;

if((fp=fopen(filename,"rb"))== NULL )
{
printf("Can not open %s!\n",filename);
exit(0);
}

printf("原字符\t二进制\n");
ch=fgetc(fp);//取字符
while(!feof(fp))
{
putchar(ch);
putchar('\t');
PRINTBIT(ch);
ch=fgetc(fp);
}
fclose(fp);

return 0;
}