C语言中可否将整个结构体写入文件,然后取出来也是按结构体输出

 我来答
义采R4
推荐于2018-05-10 · TA获得超过309个赞
知道小有建树答主
回答量:356
采纳率:74%
帮助的人:89.6万
展开全部
可以,写的时候用指针一次性写进去,但是如果文件中写如了多个结构体你可能读取的时候要区分一下否则一次全部读出来了,读出来的时候直接赋值就行。
面对淡然
2016-01-06 · TA获得超过507个赞
知道小有建树答主
回答量:968
采纳率:100%
帮助的人:389万
展开全部
可以
读取的顺序要和结构体里的元素保持一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kiss璀璨青春
2016-01-06 · TA获得超过360个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:111万
展开全部
可以做到,但实现要靠自己写,比较麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
数据_小白
2018-05-10 · TA获得超过235个赞
知道小有建树答主
回答量:279
采纳率:33%
帮助的人:54.9万
展开全部
可以
看个人能力了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-01-06
展开全部
C语言中对结构体数据格式文件进行读取时,必须以二进制格式打开文件,然后按结构体类型变量内存块方式进行数据读取,相关读数据命令为fread()。
函数说明:
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
从stream文件流中,读取nmemb个size大小的数据块到ptr所指的内存buf中,返回读取到的有效数据块数。
如,有如下结构体定义:
typedef struct TEST
{
int num;
double score;
}STRTEST;
STRTEST data ;
FILE *fp = fopen("file.dat", "rb" ) ; //按二进制格式打开文件
int n=fread( &data, sizeof(STRTEST), 1, fp ); //读取一个数据块到变量data中。
追问
我用fread读出来的数字是不是原来的数字,字符串可以,但是后面有乱码
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式