fread和fwrite的使用

fread和fwrite一般用于二进制文件的输入/输出,要不然你打开fwrite写入的文件就是乱码。

1.fread和fwrite函数

数据块I/O fread与fwrite
函数原型:
size_t fread(void *buffer, size_t size, size_t, count, FILE *pf)
size_t fwrite(void *buffer, size_t size, size_t count, FILE *pf)
功能:读写数据块(将内存的内容直接写入磁盘)
返回值:成功,返回读/写的个数,出错或文件尾,返回0.
参数含义:
buffer 从pf中读取到buffer/将buffer中的写入到pf中去。
size 每个要读/写的数据块的大小。
count 要读/写的数据块的个数
fp 要读/写的文件指针
typedef unsigned size_t

2. 文本与二进制文件之间的区别是\n和\r之间的转换。

3.例子

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h> void main1()
{
int a[];
printf("%p", a);
for (int i = ; i < ;i++)
{
;
printf("\n%d", a[i] = i);
} FILE *pf = fopen("C:\\1.bin", "r"); int num=fwrite(a, sizeof(int), , pf);//第一个内存首地址,第二个元素大小,第三个个数
printf("fwrite return =%d", num);//返回写入成功的个数.失败返回0
fclose(pf); system("pause"); }
void write()
{
int a[]; for (int i = ; i < ; i++)
{
printf("\n%d", a[i] = i);
}
FILE *pf = fopen("C:\\1.bin", "wb");
int num = fwrite(a, sizeof(int), , pf);//第一个内存首地址,第二个元素大小,第三个个数
printf("fwrite return =%d", num);//返回写入成功的个数.失败返回0
fclose(pf);
} void read()
{
void *p = malloc();
printf("%p\n", p);
FILE *pf = fopen("C:\\1.bin", "rb");
int num= fread(p, , , pf);//第一个内存首地址,第二个元素大小,第三个个数
printf("fread return =%d", num);//返回读取成功个数
fclose(pf);
} void main()
{
read(); system("pause");
}

fread和fwrite的使用的更多相关文章

  1. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  2. Matlab 用fread、fwrite实现大文件读写

    最近在分析一个35G的大数据文件,猛一看,是不是很吓人啊,不过还好,师兄写文件的格式非常规范,读取数据来也就很方便了,主要是使用了读写文件的两个函数fread和fwrite,下面用matlab简单尝试 ...

  3. C++之函数fgetc和fputc、fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

    #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int ...

  4. C语言中的fread和fwrite

    C语言中的fread和fwrite是专门用来操作文件的方法. 1. fread负责从打开的文件指针中读取文件内容. 函数原型:size_t fread(void *p, size_t size, si ...

  5. open/fopen read/fread write/fwrite区别

    fopen /open区别 UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别.1 ...

  6. fread 和 fwrite 函数用法示例以及注意事项

    1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   ( ...

  7. 函数fgets和fputs、fread和fwrite用法小结(转)

    字符串读写函数fgets和fputs: 1.fgets()函数:原型char *fgets(char *s, int n, FILE *stream);从流中读取n-1(n默认1024)个字符之前,如 ...

  8. C++:fread、fwrite函数用法

    主要内容: fread.fwrite函数的用法 1.函数功能 用来读写一个数据块. 2.一般调用形式 fread(buffer,size,count,fp); fwrite(buffer,size,c ...

  9. fread和fwrite函数功能

    fread和fwrite函数功能   用来读写一个数据块. 一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); ...

随机推荐

  1. Angular02 通过angular-cli来搭建web前端项目

    利用angular-cli的常见命令: npm i --save 包名   ->  软件依赖    npm i --save-dev 包名     ->  开发依赖    ng new 项 ...

  2. linux下的外网木马前期要的工具

    这周看了demon哥的博客弄msf外网马,自己试了一下 首先去ngrok官网下载对应的系统版本,如果对应下载那个标签是绿色的(这里不支持windows) 下载好后在linux提取出来 让我们来看看他的 ...

  3. C/C++中__builtin_popcount()的使用及原理

    __builtin_popcount()用于计算一个 32 位无符号整数有多少个位为1 Counting out the bits     可以很容易的判断一个数是不是2的幂次:清除最低的1位(见上面 ...

  4. .NET MongoDB Driver GridFS 2.2原理及使用示例

    一.API解读 1 GridFSBucketOptions 1)public string BucketName { get; set; } 获取或设置bucket名称 2)public int Ch ...

  5. 程序员之殇 —— (The Beginning of the End)噩梦、崩坏

    Look at all those faces out there (当我环视周遭的一张张脸孔) We are so different(我们是如此的不同) But we have one thing ...

  6. timeit模块

    算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务.一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址 ...

  7. Jfinal——实践出真知

    什么是Jfinal? JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所 ...

  8. 【自制工具类】Java删除字符串中的元素

    这几天做项目需要把多个item的id存储到一个字符串中,保存进数据库.保存倒是简单,只需要判断之前是否为空,如果空就直接添加,非空则拼接个"," 所以这个字符串的数据结构是这样的 ...

  9. Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。

    例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页 [root@new-host ~]# curl -d 1=1 http://www.sohu.com/inde ...

  10. Robots.txt - 禁止爬虫

    robots.txt用于禁止网络爬虫访问网站指定目录.robots.txt的格式采用面向行的语法:空行.注释行(以#打头).规则行.规则行的格式为:Field: value.常见的规则行:User-A ...