gpt4 book ai didi

c - 如何将文件扫描到链表中?

转载 作者:行者123 更新时间:2023-11-30 18:00:47 25 4
gpt4 key购买 nike

所以我有一个由整数组成的文件。我想使用 fscanf 将文件的整数读取到链接列表中。但在编译期间,函数只是等待输入(就好像函数中的某处有 scanf 一样)。请帮助我:(

代码

struct Node{
int data;
struct Node *next;
};

typedef struct Node Node;



void fillListFromFile(Node **head)
{
FILE *f;
if((f=fopen("/home/fileOints001.txt","r"))==NULL)
printf("You cannot open");
Node *newNode = malloc(sizeof(Node));
while(fscanf(f, "%d", &(newNode->data)))
{
newNode->next = *head;
*head = newNode;
Node *newNode = malloc(sizeof(Node));

}

}



fillListFromFile(&head); // in the main

最佳答案

循环仅在无法转换输入时结束(即 fscanf() 此处将返回 0)。但您不检查 EOF。因此,你会不断地转动轮子,试图一遍又一遍地阅读。像这样的东西:

int rc;

/* ... */

while ((rc = fscanf(...)) && rc != EOF) {
/* ... */
}

通过这种方式,您可以检查文件结束条件,并在遇到它时终止循环。

关于c - 如何将文件扫描到链表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10248310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com