c-在没有数组作为缓冲区的情况下,将文本文件读取到链表中



我已经被这个问题困扰了好几天了。我正试图(逐行)将整数的文本文件直接扫描到链表中(最终目标是对它们进行排序)。通常情况下,我会这样做。。。

struct list {
    int data;
    struct list *next;
};
int main()
{
    char buffer[100];
    struct list* node = NULL;
FILE *fp = fopen(filename,"r");
while (fgets(buffer, 100, fp)) {
    struct list* new_node = malloc(sizeof(struct list));
    new_node->next = NULL;
    new_node->data = atoi(buffer);
}
//and so on...

但是,我不允许使用数组来解决这个问题。在这一点上,我不知道如何存储缓冲区。

我还在以正确的方式处理这个问题吗?有人能为我指出解决这个问题的正确方向吗?注意,我对链表和结构等概念还相当陌生。任何例子都将不胜感激。谢谢

然后使用fscanf而不是fgets-

struct list* new_node = malloc(sizeof(struct list));
new_node->next = NULL;
while (fscanf(fp,"%d",&new_node->data)==1) {    //this will directly store integer into linked list
     //handle your data
     //increment new_node to new_node->next in order to create a list 
}

相关内容

  • 没有找到相关文章

最新更新