gpt4 book ai didi

c - fwrite(-ing) 将列表写入 txt.file

转载 作者:行者123 更新时间:2023-11-30 14:47:51 26 4
gpt4 key购买 nike

我创建了一个函数,将列表的随机框(/节点/链接)转换为数组(连续内存) 。所有这一切都是因为我试图将此列表fwritefile(.txt)中。

但是当我打开文件时,我看到的只是 value 字段中的单词,然后是 39 个空格,或者是空白,或者是带有随机字符或其他任何内容。有人能告诉我为什么会发生这种情况吗?

如何获取结果,或者仅获取每个数组元素的 value 字段(list 链接),或者通过调用 fwrite 一次获取全部 3 个字段?

struct box {
char value[20] ;
struct box * next ;
int occurs;
} ;

typedef struct box Box;
typedef Box * List;


Box* list_toarray(List mylist){
List iter=mylist;
Box *packed;
Box *dup;
dup=packed=malloc((sizeof(Box))*lenlist(mylist));
while(iter!=NULL){
memcpy(packed,iter,sizeof(Box));
packed++;//packed[1];
iter=iter->next;
if(iter!=NULL)
(packed-1)->next=packed;
else
(packed-1)->next=NULL;
}
printf("\nInput list to array(Consecutive blocks of memory) :\n");
report(dup);
return dup;
}

void fread_fwrite_lsttoarray(Box *dup){
FILE *myfile;
myfile=fopen("fwfr.txt","wt");
fwrite(dup,sizeof(Box),6,myfile);
fclose(myfile);
}

这也是我调用函数的方式:

fread_fwrite_lsttoarray(list_toarray(newlistasc));

其中newlistasc是一个带有struct box元素的随机列表

最佳答案

在函数 fread_fwrite_lsttoarray() 中

改变

fwrite(dup,sizeof(Box),6,myfile);

fprintf(myfile, "%s, %d\n", dup->value, dup->occurs);

不要将 elememt next 写入文件,因为它的值在内存之外毫无意义。

关于c - fwrite(-ing) 将列表写入 txt.file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50933859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com