使用C将文本文件的一半传递给链表的一个节点,另一半传递给另一个节点



为了测试的目的,我以下列方式创建了一个只有两个节点的链表:

void implement (int size)
{
    for (int i = 0; i < size; i++)
    {
        node* new = malloc(sizeof(node));
        if (new == NULL)
        {
            printf("Out of memory!n");
            return;
        }
        new->i = i;
        new->link = head;
        head = new; 
    }
}

,其中size为2,节点类型为:

typedef struct node
{
    int i; 
    char array[100];
    struct node* link;
}node; 
node* head = NULL;

我的目标来自以下文本文件:

A, B

使用以下代码将A传递给一个节点,然后将B传递给另一个节点:

char* data;
data = malloc(sizeof(char) * 100);

fgets(data, 30, inptr);
node* cur = head;
int n = 0; 
for (int i = 0, j = 6; i < j; i++)
{
   cur->array[n] = data[i];
   n++;
   printf("%s", cur->array); 
   if(data[i] == ',')
   {
        cur = cur->link;
   }

}
for (node* ptr = head; ptr != NULL; ptr = ptr->link)
{
    printf("%sn", ptr->array); 
}
但是,对于第一个printf语句,我的输出如下所示:

AA,

,然后对于遍历链表的第二个printf语句,什么也没有。我已经通过使用gdb的程序,它似乎工作得很好,所以我看不出问题在这里。任何建议/提示将不胜感激。提前感谢

您在cur = cur->link后缺少n=0;

相关内容

  • 没有找到相关文章

最新更新