社区
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. 一个结构体存一行,会有换行,怎么处理
...全文
316
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
作业
写回复
配置赞助广告
用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语言——
结构体
的
读取
与写入.zip
在这个代码段中,我们使用`fopen`函数以二进制模式("rb")打开文件,然后使用`
fread
`函数
读取
结构体
实例。`
fread
`函数接收四个参数:存储
读取
数据的内存地址、每个
结构体
的大小(`sizeof(struct Student)`)、要...
将
结构体
写入二进制文件
本篇文章将详细探讨如何在C/C++等编程语言中实现“将
结构体
写入二进制文件”以及“从二进制文件中
读取
结构体
数据”。 一、
结构体
与二进制文件
结构体
是由多个不同类型的成员组成的复合数据类型,它可以包含整型、...
file_to_struct.rar_
结构体
同样,我们需要使用二进制
读取
模式(`"rb"`)来
读取
结构体
: ```c struct Student read_student; FILE *fp = fopen("student_data.bin", "rb"); if (fp != NULL) {
fread
(&read_student, sizeof(struct ...
linux C语言 使用
结构体
对文件操作 读 写 查找
在Linux下,`<stdio.h>`库提供了基本的文件I/O功能,如`fopen()`用于打开文件,`fwrite()`和`
fread
()`用于写入和
读取
文件内容,`fclose()`用于关闭文件。然而,对于更复杂的文件操作,如查找、定位文件等,我们需要...
fread
,fwrite函数的参数2和参数3的正确顺序
5. 数据类型不匹配:如果你将`
fread
`用于
结构体
或其他复合数据类型,确保你正确计算了每个元素的字节数`size`。 6. 没有正确处理错误:`
fread
`和`fwrite`的返回值是实际处理的元素数量。如果返回值小于`nmemb`,可能...
C语言
70,020
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章