Slt tout le monde j'ai besoin d'aide SVP
siwww
-
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bilow Messages postés 1014 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un fichier text base de donnée contient:
marc;31;médecin
paul;21;plombier
et je veux charger c'est infos dans une liste chaînée sachant que ma structure s'appelle prof,
est ce que je peut écrire comme ça pour récupérer mes infos: (aux est de type prof)
fscanf(fichier,"%s;%d;%s\n",aux->nom,&aux->age;aux->profession);
je sais que ça fonctionne pour les entiers mais pour les chaines je suis pas sure en tout cas ça n'a pas marché et je veux que qlq1 me donne une soluce si c'est possible .
Mercii
j'ai un fichier text base de donnée contient:
marc;31;médecin
paul;21;plombier
et je veux charger c'est infos dans une liste chaînée sachant que ma structure s'appelle prof,
est ce que je peut écrire comme ça pour récupérer mes infos: (aux est de type prof)
fscanf(fichier,"%s;%d;%s\n",aux->nom,&aux->age;aux->profession);
je sais que ça fonctionne pour les entiers mais pour les chaines je suis pas sure en tout cas ça n'a pas marché et je veux que qlq1 me donne une soluce si c'est possible .
Mercii
A voir également:
- Slt tout le monde j'ai besoin d'aide SVP
- Supprimer une conversation messenger pour tout le monde ✓ - Forum Facebook Messenger
- Heure monde - Télécharger - Outils professionnels
- Train le plus rapide du monde - Guide
- Marée dans le monde - Télécharger - Sport
- Lire le monde sur liseuse - Forum Liseuse eBook
1 réponse
Salut !
Je n'ai jamais aimé les fonctions de lecture de fichier qui ne sont pas indispensables. Je te conseille donc te récupérer le résultat ligne par ligne (fgets), et à chaque ligne, de la traiter caractère par caractère. Tu fais une boucle, si le caractère actuel est ';', alors tu augmentes une variable qui correspondra (grâce à un switch) à une case d'un tableau.
Tu vois ce que je veux dire ? Si non, dès que je retrouve le code qui fait presque la même chose, je te le passe pour que tu puisses en prendre exemple.
Tu connais la notion des caractères en C ou C++ ?
Bye ;)
Je n'ai jamais aimé les fonctions de lecture de fichier qui ne sont pas indispensables. Je te conseille donc te récupérer le résultat ligne par ligne (fgets), et à chaque ligne, de la traiter caractère par caractère. Tu fais une boucle, si le caractère actuel est ';', alors tu augmentes une variable qui correspondra (grâce à un switch) à une case d'un tableau.
Tu vois ce que je veux dire ? Si non, dès que je retrouve le code qui fait presque la même chose, je te le passe pour que tu puisses en prendre exemple.
Tu connais la notion des caractères en C ou C++ ?
Bye ;)
bein j'ai cette fonction:
char** decouper( char* chaine, char c ) //fonction qui permet de séparer les informations d'un professionnel
{
char** tmp;
int curseur = 0;
tmp=(char**)malloc(50*sizeof(char*));
tmp[curseur++] = chaine;
while( *chaine )
{
if ( *chaine == c )
{
*chaine = '\0';
tmp[curseur++] = chaine+1;
}
++chaine;
}
tmp[ curseur ] = 0;
return tmp;
}
ça marche que pour 2 lignes et puis ça beug
Remplace par "curseur++; tmp[curseur]"... Et chaine+1 ne veut rien dire ! Logiquement ton compilateur bloque.
Aussi, je n'ai jamais vu deux étoiles pour un char*; Essaie sans. De plus, dans mon code je ne m'étais pas cassé avec les malloc...
Mon code ressemblais plus à ca :
Ici c'était un exemple qui ne fait rien, quand je retouverai le code ou bien que je serai un peu plus réveillé je te le passerai ;)
merci 1000 fois pour ton aide :)