Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1996 connectés 

  FORUM HardWare.fr
  Programmation
  C

  remettre une chaine de caractere à vide???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

remettre une chaine de caractere à vide???

n°761999
liteon
Posté le 13-06-2004 à 20:02:12  profilanswer
 

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

mood
Publicité
Posté le 13-06-2004 à 20:02:12  profilanswer
 

n°762002
Taz
bisounours-codeur
Posté le 13-06-2004 à 20:03:24  profilanswer
 

chaine[0] = '\0';
 
mais je crois que ton problème est pas là
 
tu peux montrer rapidement et simple ta boucle

n°762028
liteon
Posté le 13-06-2004 à 20:52:59  profilanswer
 

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.

n°762032
liteon
Posté le 13-06-2004 à 20:55:27  profilanswer
 

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.

n°762037
Taz
bisounours-codeur
Posté le 13-06-2004 à 21:03:58  profilanswer
 

toutes façons ici tu n'as pas besoin de strncpy
du moins on ne l'utilise pas comme ça

n°762048
liteon
Posté le 13-06-2004 à 21:10:46  profilanswer
 

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.

n°762050
liteon
Posté le 13-06-2004 à 21:12:27  profilanswer
 

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.

n°762064
Taz
bisounours-codeur
Posté le 13-06-2004 à 21:23:34  profilanswer
 

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

n°762074
liteon
Posté le 13-06-2004 à 21:33:17  profilanswer
 

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

n°762088
Taz
bisounours-codeur
Posté le 13-06-2004 à 21:44:37  profilanswer
 

tu rajoutes
 
char *eol = strchr(adre, '\n');
if(eol /* trouvé */) *eol = '\0'; /* on tronque */

mood
Publicité
Posté le 13-06-2004 à 21:44:37  profilanswer
 

n°762099
liteon
Posté le 13-06-2004 à 21:49:46  profilanswer
 

un très grand merci à toi, ca marche impeccable.
je vais pouvoir continuer mon projet.
merci encore

n°762101
Taz
bisounours-codeur
Posté le 13-06-2004 à 21:50:28  profilanswer
 

strchr qui est définit de manière standard dans <string.h>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  remettre une chaine de caractere à vide???

 

Sujets relatifs
[VB.NET]test d'un champ videChercher une chaine dans un tableau PHP
conversion chaine de caractere / en numeriquerecher chaine dans fichier texte
mettre la chaine de caractère comme il fautremettre a jour une base....
Caractère alaphanumériqueremplaer un caractere dans une chaine (champs texte)
Plus de sujets relatifs à : remettre une chaine de caractere à vide???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR