当前位置:首页 » 编程语言 » c语言二进制写入

c语言二进制写入

发布时间: 2022-09-19 04:53:45

c语言 结构体指针字符 二进制文件写入和读取

打开方式用二进制方式打开,如
FILE
*fp
=
fopen("a.zip","rb+");然后读用fread去读。
1、对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。
2、C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。
fopen的函数原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读数据。
rw+
读写打开一个文本文件,允许读和写。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
wt+
读写打开或着建立一个文本文件;允许读写。
at+
读写打开一个文本文件,允许读或在文本末追加数据。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b
字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

❷ 在C语言中,以二进制的形式写入文件中,然后读到DOS界面中以其他类型的形式显示

public String download() throws Exception{
//得到文件的真实路径
ServletContext sc = ServletActionContext.getServletContext();
String filePath = sc.getRealPath("/WEB-INF/classes/26.jpg");
//构建输入流
imageInputStream = new FileInputStream(filePath);
//用stream结果视图输出
//返回逻辑视图
return SUCCESS;
}
}

❸ c语言 二进制写入数据

temp 本身已经是地址了,所以这句中&要去掉

fwrite (&temp,sizeof(struct Host),1,fp);
==》

fwrite (temp,sizeof(struct Host),1,fp);

但是你这么做,写的时候没问题 读取文件时会有问题,读取时记得为每个指针分配空间

❹ c语言怎么二进制文件操作

主要就是二进制文件的读写、结构体的定义和使用。
fopen函数 以 "ab+" 方式打开文件,用fwrite函数写入内容; "b" 方式打开文件,读取内容;

❺ 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语言二进制数怎么写

c语言中没有二进制的格式输出符号.
你可以用itoa函数很方便的将一个10进制int转变成二进制字符串.
如:
int i;
char s[128];
scanf("%d",&i);
itoa(i, s, 2); /*3个参数,第一个是待转换的数,第二个是存放转换后的字符串,第三个即需要转换的进制*/
printf("该数转换为二进制是: [%s]\n",s);

补充一点,itoa函数的头文件是stdlib.h
(你自己不查以前已经有的问题)

❼ 急求!C语言中将二进制文件写入数组并输出为ASCII文件格式!

下面是刚写的程序
#include<stdio.h>
#include<math.h>
void
main()
{
char
n;
int
a[100],i,j=0,m;
printf("请输入二进制码的位数(小于100位)\n");
scanf("%d",&m);
printf("请输入该二进制码,每个二进制码之间用enter隔开\n");
for(i=0;i<m;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
j+=a[i]*pow(2,m-i-1);
printf("%d\n",j);
n=j+'0';
printf("该二进制文件的ASCll码是:
\n");
printf("%d\n",n);
}你可以根据自己的需要更改要输入的二进制的量

❽ C语言 数据写入二进制文件错误

二进制文件你用记事本打开应该就只能看到乱码吧,记事本不是打开文本文件(ASCII文件)吗。只要你写入正确,读出来也会没问题的。
c:\delete\litl1.dat这样写路径好像不对,在C语言中应该写成:c:\\delete\\litl1.dat。因为在C语言中两个'\'才相当于一个单撇号。
加上头文件:#include<stdlib.h>,exit()函数用到。
还有,最好不要在C盘下操作,我的系统在C盘下删除文件夹及创建都需要管理员权限的。如果真想按你写的路径创建这个文件,delete这个文件夹必须存在。
试试这样:
为了证明我的说法,我又定义了一个数组,把文件中数据读入这个数组并输出.
#include "stdio.h"
#include<stdlib.h>
main()
{FILE *fp;
int a[10],*p=a;
if((fp=fopen("d:litl1.dat","wb+"))==NULL)//wb改成wb+,这样写完以后进行读操作
{
printf("file not open!\n");
exit(0);
};
while(p<a+10)
scanf("%d",p++);
printf("\n\n\n");
p=a;
for(;p<a+10;p++)
printf("%5d",*p);
printf("\n");
fwrite(a,sizeof(int),10,fp);
int b[10],i;
rewind(fp);//使文件指针指向文件开始
fread(b,sizeof(int),10,fp);
for(i=0;i<10;i++)
printf("%5d",b[i]);
printf("\n");
fclose(fp);
}

❾ C语言二进制流写入文件

我提个思路。字节是计算机操作的实际最基本单位,任何地址只能精确到字节而无法精确到位的。
所以LZ一定要将位整合到以字节为单位才能进行其他操作。可以这么做,将二进制流按照每8位一个单位装成一个字节,并明确好字节之间的顺序,字节内高低位的顺序,最后末尾不足的要塞一些没意义的但LZ要知道的位凑足成字节。这里面当然必须反复用到位运算。
通常的做法是字节之间的顺序按照自然字节地址由小到大顺序,字节内低位在前。比如对于已经整合成字节的字节流a[N],查看第 i 个位(从0起)的算法是 a[i/8] & (1<<(i%8))。
不同的位序约定会稍有不同位操作

热点内容
7z解压很慢 发布:2025-01-11 16:51:23 浏览:940
电脑改文档服务器 发布:2025-01-11 16:41:14 浏览:869
编译汇编语言实例 发布:2025-01-11 16:36:55 浏览:670
海康ntp校时服务器地址 发布:2025-01-11 16:34:35 浏览:743
服务器运行超时怎么办 发布:2025-01-11 16:34:32 浏览:298
人妖迅雷种子ftp 发布:2025-01-11 16:33:04 浏览:916
python将列表转化为字符串 发布:2025-01-11 16:32:11 浏览:192
大疆稳定器wifi连接初始密码多少 发布:2025-01-11 16:25:36 浏览:890
专线服务器运行的项目如何访问 发布:2025-01-11 16:15:13 浏览:720
小米智能摄像机云存储 发布:2025-01-11 16:12:08 浏览:556