社区
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. 一个结构体存一行,会有换行,怎么处理
...全文
341
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");
}
}
c语言中
fread
读取
结构体
,
fread
读取
结构体
注意事项
本文介绍了C语言中
fread
函数
读取
结构体
的使用方法,强调了文本文件与二进制文件的区别,并提供了一个示例,展示如何
读取
包含三列数据的文本文件并按第二列内容排序。通过分析文件大小和换行符的影响,解释了
读取
过程中可能遇到的问题。最后,建议避免在处理文本文件时使用
fread
,推荐使用fscanf, fgets, fgetc等函数。 110001813,10272241,Vue Echarts 时间轴数据处理与空值填充,['前端开发', 'Vue', 'Echarts']
fread
读取
结构体
注意事项
本文详细介绍了如何使用
fread
()函数
读取
文本文件,并通过字符大小对文件行进行排序的过程。包括文件大小计算、文本与二进制文件的区别、
结构体
的使用以及排序算法的应用。
结构体
,fopen,fwrite,
fread
,fclose 文件打开、写入、
读取
、关闭
本文介绍了一个使用C语言进行
结构体
数据文件操作的例子。通过定义Person
结构体
并利用fopen、fwrite、
fread
和fclose等函数实现了数据的写入与
读取
。首先将三个Person实例写入二进制文件,然后从文件中
读取
第二个Person实例并显示其年龄、身高和体重。
使用
fread
和fseek/rewind
读取
结构体
数据
本文展示了如何使用C语言
读取
文件中最后两条记录,并将其id、坐标和名称打印出来。通过使用fseek和rewind函数,实现了文件定位到特定位置进行数据
读取
。
使用vs2010用
fread
读取
结构体
内存自动对齐
本文记录了解决因
结构体
成员未正确对齐而导致的文件读写错误的过程。作者通过调整编译器设置及修改文件
读取
模式解决了跨平台数据不一致的问题。
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章