J'ai un fichier texte et chaque ligne contient le nom de la personne et le sexe en valeur séparée par des virgules. J'essaie de lire ligne par ligne et de créer le tableau de la personne. Je ne sais pas ce qui s'est passé avec mon code tous les éléments du tableau est défini sur la dernière ligne du fichier texte. (Si la dernière ligne a Sam, Homme, tous les éléments du tableau de personne est définie sur Name = Sam)fichier lu ligne par ligne dans c réinitialisation valeur à la dernière entrée
struct Person{
char* Name;
char* Gender;
};
struct Person person[100];
void readAllFromFile(){
FILE * fp;
char currentLine[256];
int fd;
if((fp = fopen ("test.txt", "r"))==NULL){
perror("Can not open");
fclose(fp);
return;
}
int currentLineNo=0;
char *items;
while (fgets(currentLine, sizeof(currentLine), fp)) {
items=strtok(currentLine,",");
struct Person tempPerson;
int iter=0;
while(items != NULL)
{
if(iter==0){
tempPerson.Name=items;
}
else {
tempPerson.Gender=items;
}
iter++;
items=strtok(NULL,",");
}
person[currentLineNo]=tempPerson;
currentLineNo++;
}
/*Printing element of the array*/
int i;
for(i=0;i<currentLineNo;i++){
printf("%s\n",person[i].Name);
}
fclose(fp);
}
int main() {
readAllFromFile();
return 0;
}
Copie possible de [C: utilisation de fgets pour créer une liste chaînée de char \ *] (https://stackoverflow.com/questions/46243081/c-fgets-usage-for-building-a-linked-list- of-char) –
Deuxième ce soir, même numéro. beaucoup, beaucoup de doublons :( –