[英]Read txt file to linked list C
我试图将我的链表保存到 txt 文件并稍后加载。 它用于电影编辑器项目。 节点:
// Frame struct
typedef struct Frame
{
char* name;
unsigned int duration;
char* path;
} Frame;
// Link (node) struct
typedef struct FrameNode
{
Frame* frame;
struct FrameNode* next;
} FrameNode;
我以这种方式保存了它:
小路
期间
名称
小路
期间
名称
小路
期间
名称
小路
期间
名称
...
\\n 之间的数据。
这是我的功能:
FrameNode* loadVideo()
{
FrameNode* head = NULL;
FrameNode* newNodeFrame = NULL;
FrameNode* newFrame = NULL;
FILE* f = NULL;
char pathP[STR_LEN] = "";
char file[1024] = { 0 };
char c;
char path[1000] = "";
char name[1000] = "";
char duration[STR_LEN] = "";
int i = 0;
int j = 0;
printf("Enter the path of file to load: ( .txt)\n");
myFgets(pathP);
f = fopen(pathP, "r");
if (f == NULL)
{
printf("Error opening file\n");
return;
}
while ((c = (char)fgetc(f)) != EOF)
{
file[i] = c;
i++;
}
fclose(f);
for (i = 0; i < strlen(file); i++)
{
while (file[i] != '\n')
{
path[j] = file[i];
i++;
j++;
}
j = 0;
i++;
while (file[i] != '\n')
{
duration[j] = file[i];
i++;
j++;
}
j = 0;
i++;
while (file[i] != '\n')
{
name[j] = file[i];
i++;
j++;
}
j = 0;
newFrame = craeteFrame(name, atoi(duration), path);
FrameNode* newFrameNode = (FrameNode*)malloc(sizeof(FrameNode));
newFrameNode->frame = newFrame;
newFrameNode->next = NULL;
insertAtEnd(&head, newFrameNode);
}
return head;
}
它并不完美,而且非常丑陋……有人有更好的选择吗? 谢谢。 ..如果您对文件中的保存有一些更改要提供给我,那将很好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.