c - 使用 C 将文本文件的一半传递到链表的一个节点,将第二部分传递到另一个节点

标签 c linked-list

为了测试目的,我通过以下方式创建了一个仅包含两个节点的链表:

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; 
    }
}

目前大小为 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("%s\n", ptr->array); 
}

但是,我的第一个 printf 语句的输出如下:

AA,

然后对于遍历链表的第二个 printf 语句,什么也没有。我已经使用 gdb 完成了该程序,它似乎工作正常,所以我不太明白这里的问题是什么。任何建议/提示将不胜感激。提前致谢

最佳答案

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

关于c - 使用 C 将文本文件的一半传递到链表的一个节点,将第二部分传递到另一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530096/

相关文章:

C 控制台输出不连续,等待程序完成

c - 链表中指针的操作

c - 为什么删除节点中的位置 0 不起作用?

c - 使用循环将 Char 值添加到链接列表 [C]

java - 频率包 - getFrequencyOf(aData)

c - 使全局结构指针可用于多个源文件

c# - 从 C# 调用 C 结构数据

c - 根据指定的头文件扩展C中的宏

c - 这是一个 C 变量吗?

c++ - 递归函数删除链表中字符的所有实例