fread和fwrite和feof读写二进制文件
#include <stdio.h>
#include <stdlib.h> void text_to_bin(char *argv[]);
void bin_to_text(); typedef struct
{
int xh;
char name[20];
int age;
}Student;
int main(int a,char *argv[]){ if(a!=4){
printf("参数不够!\n");
}
text_to_bin(argv);
bin_to_text(argv); return 0; }
void text_to_bin(char *argv[]){
Student stu;
FILE *fp1, *fp2;
fp1 = fopen(argv[1],"r");
if(fp1==NULL){
printf("source file open error");
exit(1);
}
fp2 = fopen(argv[2],"wb");//write b bytes二进制文件 要写入的二进制文件
if(fp2==NULL){
printf("bytes file open error");
exit(1);
}
while(fscanf(fp1,"%d %s %d", &stu.xh, stu.name, &stu.age)!=EOF){
//printf("%s\n",stu.name);
fwrite(&stu, sizeof(stu), 1, fp2);//写入二进制文件stu是指向数据块的二进制结构体变量; 每次写入1个结构体变量 }
fclose(fp1);
fclose(fp2);
}
void bin_to_text(char *argv[]){
Student stu;
FILE *fp1, *fp2;
fp1 = fopen(argv[2],"rb");//只读方式读取二进制文件
if(fp1==NULL){
printf("source file open error");
exit(1);
}
fp2 = fopen(argv[3],"w");//写入文本文件
if(fp2==NULL){
printf("bytes file open error");
exit(1);
}
//必须>0 循环
/* while(fread(&stu,sizeof(stu), 1, fp1)){
fprintf(fp2, "%d %s %d\n",stu.xh, stu.name, stu.age);
} */ size_t size = fread(&stu, sizeof(stu),1,fp1);
if(size==0) return;
//feof只能用在二进制文件
while(!feof(fp1)){
fprintf(fp2, "%d %s %d\n",stu.xh, stu.name, stu.age);
fread(&stu, sizeof(stu),1,fp1);//必须加
} fclose(fp1);
fclose(fp2);
}
fread和fwrite和feof读写二进制文件的更多相关文章
- fread和fwrite用法小结
fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出. #include <stdio.h>size_t fread(void *p ...
- Matlab 用fread、fwrite实现大文件读写
最近在分析一个35G的大数据文件,猛一看,是不是很吓人啊,不过还好,师兄写文件的格式非常规范,读取数据来也就很方便了,主要是使用了读写文件的两个函数fread和fwrite,下面用matlab简单尝试 ...
- 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)
函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...
- C++之函数fgetc和fputc、fgets和fputs、fread和fwrite、fscanf和fprintf用法小结
#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int ...
- fread和fwrite的使用
fread和fwrite的使用 fread和fwrite一般用于二进制文件的输入/输出,要不然你打开fwrite写入的文件就是乱码. 1.fread和fwrite函数 数据块I/O fread与fwr ...
- [Matlab+C/C++] 读写二进制文件
introduction 因为Matlab操作简单.方便,它被应用于很多领域:音频处理,图像处理,数值计算等.尽管MATLAB容易操作,但受限于他的语言解释机制,MATLAB的执行速度通常较低.C/C ...
- C编程中fread 、fwrite 用法总结
在C语言中进行文件操作时,我们经常用到fread()和fwrite(),用它们来对文件进行读写操作.下面详细绍一下这两个函数的用法. 我们在用C语言编写程序时,一般使用标准文件系统,即缓冲文件系统 ...
- C语言中的fread和fwrite
C语言中的fread和fwrite是专门用来操作文件的方法. 1. fread负责从打开的文件指针中读取文件内容. 函数原型:size_t fread(void *p, size_t size, si ...
- open/fopen read/fread write/fwrite区别
fopen /open区别 UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别.1 ...
随机推荐
- 【.Net Core】编译时禁止自动生成netcoreapp文件夹
原文:[.Net Core]编译时禁止自动生成netcoreapp文件夹 每次在编译生成文件时,VS都会自动在<OutputPath>属性指定的路劲后再追加一个用NetCore命名的文件夹 ...
- java之单元测试
这篇主要简单讲下java的单元测试 目录结构如下: 如图,其中1是需要被测试的功能:2是测试模块:3是单元测试需要的引入包: 1. 功能模块1中 Calculator 的代码: package cn. ...
- 1+X证书学习日志——函数
工具得特点: 1:重复性使用 2:隐藏内部原理(细节) 3:选择性应用 创建函数: 1:关键字 function 函数名称(){ } 2:字面量创建 var fn = function(){ } 3: ...
- ORACLE 清理SYSAUX表空间
在数据库检查中发现SYSAUX表空间占用过大,SYSAUX是ORACLE10G开始提供的功能,用于数据库为SYSTEM表空间减负. 用以下语句查出相应的表空间值 select a.tablespace ...
- 学习python的日常7
---恢复内容开始--- 正则表达式: 在正则表达式中,用\d可以匹配一个数字,\w可以匹配一个字母或数字,'.'可以匹配任意字符,用*表示任意个字符,用+表示至少一个字符,用?表示0个货一个字符,用 ...
- python接口自动化13-data和json参数傻傻分不清
前言 在发post请求的时候,有时候body部分要传data参数,有时候body部分又要传json参数,那么问题来了:到底什么时候该传json,什么时候该传data? 一.识别json参数 1.在前面 ...
- 传统Dolev-Yao攻击模型和eCK强安全模型之间的辨析
1.DY模型是基于安全协议的分层次的思想,先考虑安全协议本身的行为逻辑是否存在缺陷,之后再考虑实现方法是否存在问题. 而在一般的协议分析中我 们在安全协议验证中我们假定攻击者不具备攻破密码算法的能力, ...
- IAR8.X安装教程
安装教程 1.下载 2.安装 3.和谐 1.下载 打开官网 找到要下载的版本3. 下载8.4下载地址 不支持中文路径,有点坑https://netstorage.iar.com/SuppDB/Pro ...
- springboot 运行jar 跳转jsp页面
pom.xml 添加 <!-- tomcat支持 --> <dependency> <groupId>org.springframework.boot</gr ...
- python高级特性-生成器
在python中一边循环一边计算的机制成为生成器(generator) 在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行. 生成list > ...