Это часть моего кода.
while(1)
{
struct client* newnode = malloc(sizeof(client));
if(head->next != NULL)
{
newnode = newnode -> next;
}
if(head->next == NULL)
{
newnode->next = head->next;
head->next=newnode;
}
ReadEOF = fscanf(fp1,"%d %s %s %s %s\n",&(newnode->ID),newnode->PW,newnode->NAME,newnode->ADDRESS,newnode->PNUM);
if((ReadEOF)!= 5)
{
break;
}
++NumofClient;
printf("%d",NumofClient);
} //make newnodes
Эти коды написаны перед циклом.
struct client* head=malloc(sizeof(client));
head->next = NULL;
int NumofClient = 0;
int ReadEOF;
Это struct client.
typedef struct client{
int ID;
char PW[100],NAME[100],ADDRESS[100],PNUM[100];
struct client* next;
}client;
Этоэто файл client.txt.
123 aa aa aa aa aa
234 bb bb bb bb bb
567 cc cc cc cc cc
Я ожидал, что значение NumofClient равно 3.
, но я обнаружил, что программа выходит из цикла, когда значение NumofClient равно 1.
Это означает, что возвращаемое значение функции fscanf не было 5 при 2-й попытке.
Или, во время реализации связанного списка произошла ошибка?
Если вам нужно, я с удовольствием напишу полный код в комментарии