J'essaie d'obtenir plusieurs éléments d'un fichier et de le placer dans ma liste chaînée mais il n'introduit que le dernier élément du fichier.Programmation en C, fscanf ne saisit que le dernier élément
A l'intérieur du fichier est
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Voici mon code
typedef struct node{
int elem;
struct node *next;
}node;
void insert(node **a)
{
int temp,elem;
node *tempstruct;
tempstruct = (*node)malloc(sizeof(struct node));
FILE *fp;
if(fp = fopen("input.txt","r")){
while(fscanf(fp,"%d",&elem)==1){
temp = elem%10;
tempstruct->elem = elem;
tempstruct->next = a[temp];
a[temp] = tempstruct;
}
}
}
La sortie attendue devrait être
A[0] 10
A[1] 11 1
A[2] 12 2
A[3] 13 3
A[4] 14 4
A[5] 15 5
A[6] 16 6
A[7] 17 7
A[8] 18 8
A[9] 19 9
Mais ce que je reçois est
A[0] 19
A[1] 19
A[2] 19
A[3] 19
A[4] 19
A[5] 19
A[6] 19
A[7] 19
A[8] 19
A[9] 19
Je suis en train de mettre des éléments dans les indices correspondant à leur chiffre des unités, mais tout ce qu'il met est le dernier élément qui est 19.
Votre code ne peut pas compiler. E.g '(* node)', 'temp =% elem;' – BLUEPIXY
Essayez d'éviter le type de conversion de la valeur de retour de malloc. –
Vous essayez trop de déboguer. D'abord, comprenez comment lire les données du fichier. Deuxièmement, comprendre comment assigner ces éléments au 'node' – KevinDTimm