我很新于C语言编程,遇到了一些困难。我的目标是从文本文件中逐行读取内容,并将每行添加到一个简单链表中。我已经尝试了很多,但都没有找到解决方法。到目前为止,我能够从文件中读取数据,但是我不知道如何逐行保存并将其添加到链表中。
以下是我目前的代码:
struct list {
char string;
struct list *next;
};
typedef struct list LIST;
int main(void) {
FILE *fp;
char tmp[100];
LIST *current, *head;
char c;
int i = 0;
current = NULL;
head = NULL;
fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("Error while opening file.\n");
exit(EXIT_FAILURE);
}
printf("File opened.\n");
while(EOF != (c = fgetc(fp))) {
printf("%c", c);
}
if(fclose(fp) == EOF) {
printf("\nError while closing file!");
exit(EXIT_FAILURE);
}
printf("\nFile closed.");
}
如果有人能给我一些提示,告诉我下一步该做什么才能让它起作用,我会非常感激。我习惯于使用Java,但在C语言上面就不太能理解如何去做这些事情了。
char string;
是一个一字节的变量。它只能存储8位数据,不能存储任何类型的文本字符串。可能你想要使用char *string;
。也许你可以尝试使用strdup()
在读取每个字符串时创建其副本,并将返回值分配给每个链接的string
元素。阅读这篇文章可能会有所帮助。 - r3mainer