gpt4 book ai didi

c - 将列表写入文本文件

转载 作者:行者123 更新时间:2023-11-30 19:39:36 27 4
gpt4 key购买 nike

我正在尝试在文本文件中编写一个简单的列表。

typedef int DATA;

struct lista {

DATA info;
struct lista *urm;
};

typedef struct lista Lista,*LISTA;

int main()
{
int x;
FILE *f;
LISTA l;
l=newl();
l=(LISTA)malloc(sizeof(Lista));
scanf("%d",&x);
do{
l=inserare_in_fata(l,x);
scanf("%d",&x);
} while(x!=0); // reading list elements until he read 0
scrieFis(f,l);
}
LISTA newl()
{
return NULL;
}

LISTA inserare_in_fata(LISTA l,DATA x)
{
LISTA f;
f=(LISTA)malloc(sizeof(Lista));
f->info=x;
f->urm=l;
return f;
}

int scrieFis(FILE *f,LISTA l)
{
f=fopen("date.txt","wt");
if(f!=NULL)
{
while(l->urm!=NULL)
{
fprintf(f,"%d ",l->info);
l=l->urm;
}
}
else
{
printf("Nu s-a putut realiza scrierea fisierului!");
return 0;
}
}

在文本文件中,写入列表,但也在一大堆地址*指针之后(我认为)。一开始我准备通过函数 newl() 来获得 NULL,并在用信息制作另一个点并粘贴到列表中的 l 之前。

最佳答案

您向后填充列表,因此分配的第一个项目将成为列表中的最后一个项目。但此项的 urm 成员从未用 NULL 初始化,表明它是最后一项。

在主函数中:

l=(LISTA)malloc(sizeof(Lista));  //memory allocated for first (last when list is populated) item
l->urm = NULL; //initialise urm to NULL, indicating this is the last item
scanf("%d",&x);
//etc...

这样 while 循环可以检测到列表中的最后一项并停止。

关于c - 将列表写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36310991/

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