Langage C
Fermé
aderiano
Messages postés
6
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
21 janvier 2009
-
21 janv. 2009 à 23:21
aderiano Messages postés 6 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 21 janvier 2009 - 21 janv. 2009 à 23:42
aderiano Messages postés 6 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 21 janvier 2009 - 21 janv. 2009 à 23:42
A voir également:
- Langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Dev-Pascal - Télécharger - Édition & Programmation
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 janv. 2009 à 23:30
21 janv. 2009 à 23:30
Salut,
Si j'ai bien compris ton problème, tu as besoin de fgets(). Ca prend tous les espaces jusqu'à la fin de la ligne tant que le nombre de caractères lus est inférieur à la taille du buffer.
Si j'ai bien compris ton problème, tu as besoin de fgets(). Ca prend tous les espaces jusqu'à la fin de la ligne tant que le nombre de caractères lus est inférieur à la taille du buffer.
aderiano
Messages postés
6
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
21 janvier 2009
21 janv. 2009 à 23:42
21 janv. 2009 à 23:42
Merci ,mais j'ai un fichier qui contient des lignes de données chaque ligne contient les informations suivante:
login mot de passe nom prenom email pseudo
certains champs contiennent des espaces exp: nom composé,
j'ai pris les ligne via fgets et je veux la décompose suivant le nombre de char de chaque champs la fonction que j'ai utilisé est:
liste *charge_user(liste *l)
{
cellule *ptc;
char s[111];
FILE *f;
f=fopen("user.txt","r");
l=(liste*)malloc(sizeof(liste));
l->ptd=NULL;
l->ptf=NULL;
while ( fgets(s,110,f))
{
ptc=(cellule*)malloc(sizeof(cellule));
ptc->pts=NULL;
ptc->ptp=NULL;
sscanf(s,"%20s %10s %20s %20s %30s %10s",ptc->login,ptc->mot_passe,ptc->nom,ptc->prenom,ptc->email,ptc->pseudo);
if(l->ptd==NULL)
{
l->ptd=ptc;
l->ptf=ptc;
}
else
{
l->ptf->pts=ptc;
ptc->ptp=l->ptf;
l->ptf=ptc;
}
};
return (l);
fclose (f);
}
si le nom est composé alors il affecte la deuxieme partie pour le champs suivant dans la structure
login mot de passe nom prenom email pseudo
certains champs contiennent des espaces exp: nom composé,
j'ai pris les ligne via fgets et je veux la décompose suivant le nombre de char de chaque champs la fonction que j'ai utilisé est:
liste *charge_user(liste *l)
{
cellule *ptc;
char s[111];
FILE *f;
f=fopen("user.txt","r");
l=(liste*)malloc(sizeof(liste));
l->ptd=NULL;
l->ptf=NULL;
while ( fgets(s,110,f))
{
ptc=(cellule*)malloc(sizeof(cellule));
ptc->pts=NULL;
ptc->ptp=NULL;
sscanf(s,"%20s %10s %20s %20s %30s %10s",ptc->login,ptc->mot_passe,ptc->nom,ptc->prenom,ptc->email,ptc->pseudo);
if(l->ptd==NULL)
{
l->ptd=ptc;
l->ptf=ptc;
}
else
{
l->ptf->pts=ptc;
ptc->ptp=l->ptf;
l->ptf=ptc;
}
};
return (l);
fclose (f);
}
si le nom est composé alors il affecte la deuxieme partie pour le champs suivant dans la structure