fgets et strcat - C - Programmation
Marsh Posté le 28-07-2005 à 15:51:25
1) c'est quoi le probleme avec la condition?
2) c'est pas la question
3) on t'aime quand meme taz
Marsh Posté le 28-07-2005 à 15:58:58
j'ai simplement pris l'exemple de cet url
http://www.cplusplus.com/ref/cstdio/feof.html
(avec fgets au lieu de fgetc)
Marsh Posté le 28-07-2005 à 16:00:34
ReplyMarsh Posté le 28-07-2005 à 16:11:56
burgergold a écrit : c'est quoi la bonne facon alors? |
Avoir des bonnes références : K&R, manpages, FAQ de fr.comp.lang.c. Et surtout éviter de coder à partir de conseils donnés sur le net, que ce soit sur une page web aussi sérieuse qu'elle puisse paraître ou sur un forum.
Du coup un simple coup d'oeil dans le K&R ou man fgets t'indique que fgets renvoie NULL en cas d'erreur ou de fin de fichier. Quant à feof, elle sert à diagnostiquer a posteriori la cause du renvoie de NULL de fgets.
Marsh Posté le 28-07-2005 à 16:17:08
compris pour ce point
retour à la question initiale, pourquoi je peux pas concaténer ligne[i] à mon pw_name?
Marsh Posté le 28-07-2005 à 16:29:02
c'est ok si au lieu de faire un strcat je fais
pw_name[i] = ligne[i];
? en tout cas le résultat est le bon
Marsh Posté le 28-07-2005 à 17:25:02
burgergold a écrit :
|
feof() ne fait pas ce que tu crois. Il faut tester le retour de la fonction de lecture (ici, fgets())
http://mapage.noos.fr/emdel/notes.htm#fichiers
Marsh Posté le 28-07-2005 à 17:28:57
burgergold a écrit : c'est ok si au lieu de faire un strcat je fais |
Ok.
Marsh Posté le 01-08-2005 à 13:13:31
mcjoedassin a écrit : euh... |
peut pas
on utilise un système d'authentification DCE. Lorsqu'on utilise la fonctione getpwnam, ca va chercher dans ce système là en plus de /etc/passwd
Marsh Posté le 01-08-2005 à 14:53:10
retrox a écrit : du coup, on peut fermer la section Programmation de HFR |
Je pense que ce qu'a voulu dire alerim, c'est que les conseils données doivent être vérifiés et testés et non pris comme parole divine... Enfin, j'espère...
Marsh Posté le 28-07-2005 à 15:35:20
je dois vérifier dans un fichier /etc/passwd si un userid existe. je fais la lecture avec fgets, et ensuite je concatene dans une variable chaque caractere jusqu'à ce que j'ai atteint un ":" ou la limite de caractere pour un userid
le probleme c'est que je ne semble pas pouvoir faire de strcat à partir d'un caractere de ma ligne récupéré par fgets
si je remplace
strcat(pw_name,(unsigned char *)ligne[i]);
par
strcat(pw_name,"a" );
j'ai bien des "a" affiché selon la longueur du userid
quel est le problème avec ligne[i]?