社区
C语言
帖子详情
fread读取结构体
wzuxian2012
2012-06-23 09:30:46
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
这个函数, 的 第第2个参数是大小, 第三个是个数
1. 读取后一个结构后,如何解析????
struct MyStruct
{
int a;
char c;
};
如何解析???
2. 一个结构体存一行,会有换行,怎么处理
...全文
309
7
打赏
收藏
fread读取结构体
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); 这个函数, 的 第第2个参数是大小, 第三个是个数 1. 读取后一个结构后,如何解析???? struct MyStruct { int a; char c; }; 如何解析??? 2. 一个结构体存一行,会有换行,怎么处理
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2012-06-25
打赏
举报
回复
推荐使用WinHex软件查看文件或内存中的原始字节内容。
不要把
fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待
和
fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待
弄混了
qq120848369
2012-06-25
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
1. 为什么不处理换行
2. fread与二级制有什么关系,难道其他方式打开不行吗??
还是说,不一定非要是二进制
[/Quote]
在WINDOWS平台, 请严格区分文件格式是二进制文件还是文本文件。
pathuang68
2012-06-23
打赏
举报
回复
参考:
把结构用二进制方式写入文件,并读出来
wzuxian2012
2012-06-23
打赏
举报
回复
有人回答3楼的问题吗
wzuxian2012
2012-06-23
打赏
举报
回复
1. 为什么不处理换行
2. fread与二级制有什么关系,难道其他方式打开不行吗??
还是说,不一定非要是二进制
qq120848369
2012-06-23
打赏
举报
回复
malloc一块内存, 然后fread进去一个结构体, 就可以用了.
quwei197874
2012-06-23
打赏
举报
回复
#include <stdio.h>
#define SIZE 2
struct student_type
{
char name[10];
int num;
int age;
char addr[10];
}stud[SIZE];
void save()
{
FILE *fp;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{
printf("cant open the file");
exit(0);
}
for(i=0;i<SIZE;i++)
{
if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
main()
{
int i;
for(i=0;i<SIZE;i++)
{
scanf("%s%d%d%s",&stud[i].name,&stud[i].num,&stud[i].age,&stud[i].addr);
save();
}
for(i=0;i<SIZE;i++)
{
printf("%s,%d,%d",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
}
}
fread.c
#include <stdio.h>
#define SIZE 2
struct student_type
{
char name[10];
int num;
int age;
char addr[10];
}stud[SIZE];
void read()
{
FILE *fp;
int i;
if((fp=fopen("stu_list","rb"))==NULL)
{
printf("cant open the file");
exit(0);
}
for(i=0;i<SIZE;i++)
{
if(fread(&stud[i],sizeof(struct student_type),1,fp)!=1)
printf("file write error\n");
}
fclose(fp);
}
main()
{
int i;
read();
for(i=0;i<SIZE;i++)
{
printf("%s,%d,%d,%s",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
printf("\n");
}
}
道路数据信息
读取
并简单处理
没什么技术含量,只是用
fread
读取
数据并生成链表。根据控制台选项输出一些信息。尝试一下按
结构体
读取
,但是内存对齐导致结果错误。有部分宏处理,用的不是很好。移位运算用的别人的现成代码。功能实现。代码调试成功。设计文档来自网络。版权归原作者所有 环境:XP+vs2005
如何
读取
一副BMP图像中的数据并存入数组
如何
读取
一副BMP图像中的数据并存入数组, 我已经用fopen和
fread
把BMP的头文件和头信息读入相应的
结构体
了,经过输出是正确的
hex
fread
:以十六进制
读取
二进制文件。-matlab开发
返回转换为十六进制并在具有所需列数的矩阵中的文件元素。 句法: [HEX,SIZE] = HEX
FREAD
(FILE,COLS) 在屏幕截图中显示了一个带有 MATLAB 图标的示例: h=hex
fread
([matlabroot,'/X11/icons/matlab32c_icon.xpm']) 反向由 HEXDISP 完成。 这是 SELFPACK 使用的策略,以便将任何文件存储在 ap 文件中...
cstruct:一种将二进制数据映射到 MATLAB
结构体
的工具,反之亦然。-matlab开发
cstruct 将字节(即二进制数据)映射到 MATLAB
结构体
,反之亦然。 它对于从磁盘文件解包二进制数据或准备 MATLAB 数据以通过接口发送非常有用。 名称“cstruct”源自其最初使用从套接字接口
读取
二进制数据的用途,该接口的格式基于 C 结构。 cstruct 将接收到的字节重新转换为 MATLAB 数据类型(包括简单类型和聚合类型 -
结构体
和单元格)。 该映射基于模板。 创建一个具有所需格式/结构的 MATLAB 对象。 cstruct 分析结构,可以从中提取字节,或将字节打包到结构中。 支持各种字节对齐和字节排序选项。 自从我写了这个,我发现它比我想象的更有用,因为我经常处理记录的数据和二进制数据流。 它确实有助于弥合使用 C 程序和 MATLAB 创建的数据之间的差距,而无需创建专门的 mex 文件,也无需使用带有数据类型说明符的繁琐
fread
函数。
C语言程序设计题库 第十一章:数据文件的使用
文件是可以存储在磁盘或其他存储设备上,提供了一种便捷的方式来
读取
和写入数据。C语言通过文件操作来实现对文件的
读取
和写入,可以从外部文件
读取
数据到程序中,或将程序生成的数据写入到文件中,实现数据的持久化和共享。 文件可以分为文本文件和二进制文件两种类型: 文本文件(Text File):文本文件是由字符组成的文件,可以使用文本编辑器打开并查看其内容。文本文件中的数据是以文本形式存储的,例如ASCII码或Unicode编码。C语言中可以使用标准库函数(如fopen、fprintf、fscanf等)来
读取
和写入文本文件。 二进制文件(Binary File):二进制文件是由字节组成的文件,内容不可直接查看,只能以二进制形式进行
读取
和写入。二进制文件可以包含任意类型的数据,如整数、浮点数、
结构体
等。C语言中可以使用标准库函数(如fopen、fwrite、
fread
等)来
读取
和写入二进制文件。 在C语言中,使用文件指针(File Pointer)来表示文件,通过文件指针可以进行文件的打开、关闭、
读取
和写入等操作。文件操作包括打开文件、关闭文件、
读取
文件、写入文件、移动文件指针等。
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章