我正在尝试创建一个函数,该函数将给定文件中的所有字符读入链接列表,并返回指向列表的指针。我不能使用fopen,fread或fclose。我已经确认,如果对字符串进行操作,这是有效的代码:
请注意,ft_lstnew创建一个以内容为第一个链接的链接,并返回指向该链接的指针。
head = ft_lstnew(&str[i++], 1);
curr = head;
while(str[i])
{
curr->next = ft_lstnew(&str[i++], 1);
curr = curr->next;
}
curr->next = ft_lstnew(&str[i], 1);
Run Code Online (Sandbox Code Playgroud)
如何使用读取功能更改此代码以对文件中的字符而不是字符串中的字符进行操作?
t_list *ft_lstnew(void const *content, size_t content_size);
t_list *read_tetriminos(char *file)
{
int fd;
char c;
t_list *curr;
t_list *head;
fd = open(file, O_RDONLY, 0);
read(fd, &c, 1);
head = ft_lstnew(&c, 1);
curr = head;
while(curr->content != EOF)
{
read(fd, &c, 1);
curr->next = ft_lstnew(&c, 1);
curr = curr->next;
}
close(fd);
return(head);
}
Run Code Online (Sandbox Code Playgroud)