永发信息网

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

答案:5  悬赏:10  手机版
解决时间 2021-11-18 14:21
  • 提问者网友:戎马万世
  • 2021-11-18 05:50
C语言中可否将整个结构体写入文件,然后取出来也是按结构体输出
最佳答案
  • 五星知识达人网友:迟山
  • 2021-11-18 06:47
可以,写的时候用指针一次性写进去,但是如果文件中写如了多个结构体你可能读取的时候要区分一下否则一次全部读出来了,读出来的时候直接赋值就行。
全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-11-18 11:37
可以
读取的顺序要和结构体里的元素保持一致
  • 2楼网友:猎心人
  • 2021-11-18 10:53
可以做到,但实现要靠自己写,比较麻烦
  • 3楼网友:酒安江南
  • 2021-11-18 09:56
可以
看个人能力了
  • 4楼网友:掌灯师
  • 2021-11-18 08:25
C语言中对结构体数据格式文件进行读取时,必须以二进制格式打开文件,然后按结构体类型变量内存块方式进行数据读取,相关读数据命令为fread()。
函数说明:
#include
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读出来的数字是不是原来的数字,字符串可以,但是后面有乱码
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯