remettre une chaine de caractere à vide??? - C - Programmation
Marsh Posté le 13-06-2004 à 20:03:24
chaine[0] = '\0';
mais je crois que ton problème est pas là
tu peux montrer rapidement et simple ta boucle
Marsh Posté le 13-06-2004 à 20:52:59
while(!feof(fic))
{
fgets(adre, 200, fic);
a=strlen(adre)-1;
strncpy(autre, adre, a);
//fprintf(stdout, "%s\n", autre);
getch();
Ajout_Deb(Premier, autre);
}
fclose(fic);
voila en gros le code, la fonction ah=jout_deb ajoute autre dans la liste chainee Premier.
Marsh Posté le 13-06-2004 à 20:55:27
si ma chaine de la boucle N fait 10 caracteres et celle de la boucle N+1 en fait 8, ma chaine de N+1 aura les 2 derniers caracteres de la boucle N. C'est peut etre pas trop clair tout ca.
Marsh Posté le 13-06-2004 à 21:03:58
toutes façons ici tu n'as pas besoin de strncpy
du moins on ne l'utilise pas comme ça
Marsh Posté le 13-06-2004 à 21:10:46
je viens d'ajouter une boucle for qui remet ma chaine à '\0' donc le probleme ne se trouve plus la, maintenant en faisant le strncpy avec la dernière ligne de mon fichier fic, il me manque le dernier caractère.
Marsh Posté le 13-06-2004 à 21:12:27
si tu as une meilleur solution je suis pres a t'ecouter(ou te lire plutot).
en fait je dois prendre la premiere ligne de mon fichier fic et l'envoyer dans Ajout_Deb.
Marsh Posté le 13-06-2004 à 21:23:34
déjà écris
while(fgets(buffer, sizeof buffer, fichier) != NULL)
n'utilise jamais feof qui ne fait pas ce que tu penses
a=strlen(adre)-1;
strncpy(autre, adre, a);
pourquoi ne pas utilisé directement adre ?
je comprends pas trop ton problème en fait
Marsh Posté le 13-06-2004 à 21:33:17
voila, je viens de changer, voici mon code:
while(fgets(adre, sizeof(adre), fic) != NULL)
{
fprintf(stdout, "%s\n", adre);
getch();
Ajout_Deb(Premier, adre);
}
fclose(fic);
mais en faisant ca, il prend en compte le retour a la ligne(\n) que j'ai dans mon fichier et donc il m'affiche avec une ligne sur 2.
mon fichier est celui-ci:
c:\file1.txt
c:\file2.txt
et il m'affiche donc
c:\file1.txt
c:\file2.txt
Marsh Posté le 13-06-2004 à 21:44:37
tu rajoutes
char *eol = strchr(adre, '\n');
if(eol /* trouvé */) *eol = '\0'; /* on tronque */
Marsh Posté le 13-06-2004 à 21:49:46
un très grand merci à toi, ca marche impeccable.
je vais pouvoir continuer mon projet.
merci encore
Marsh Posté le 13-06-2004 à 21:50:28
strchr qui est définit de manière standard dans <string.h>
Marsh Posté le 13-06-2004 à 20:02:12
bonjour à tous, je voudrais savoir comment faire pour remettre ma chaine de caractère à vide car je me sert de strncpy dans une boucle et il me reste des caractères dans ma chaine