我可能又错过了一些非常简单的东西,但是在实验室里呆了太多时间让我看不出我在这里做错了什么。我正在尝试通过创建一个列表并将新节点附加到它作为从文件中读取的所有字符的链接列表,因为新字符被读入直到文件末尾。
首先是一些背景知识,这是节点结构的代码:
typedef struct node
{
//each node holds a single character
char data;
//pointer to the next node in the list
struct node *next;
}node;
通过使用几个 printf 语句,我设法将问题缩小到此代码块中的某个地方。
FILE *infile = fopen("data.txt", "r");
int c;
int counter = 0;
node *head, *current = NULL;
//Get the count of our original rules and create the list
do{
node *item = new node();
c = fgetc(infile);
if(c == '\n'){
counter ++;
}
printf("From infile: %c \n", c);
item->data = c;
item->next = NULL;
printf("Item data: %c", item->data);
if (head == NULL){
head = current = item;
}
else {
current->next = item;
current = item;
}
}while( c != EOF);
我不确定它在哪里,但我知道它在里面。如果我能用另一双眼睛指出哪里出了问题,我将不胜感激。