[C] Problème de lecture dans un fichier

Problème de lecture dans un fichier [C] - C++ - Programmation

Marsh Posté le 12-06-2003 à 14:27:53    

Hello
 
j'ai un petit soucis de lecture dans un fichier texte et j'vois pas de quoi ça vient  :??: je m'explique
 
Mon fichier est construis ainsi
 
Broadcast[tabulation]@broadcast
@mac1[tabulation]@ip1
@mac2[tabulation]@ip2
@mac3[tabulation]@ip3
...
 
les adresse mac sont rentrés selon cette syntaxe 0080D4011418 (pas de ":" entre les octets) et les adresses IP sont rentrées ainsi : 150.1.0.10
Il y a un retour chariot en fin de ligne.
 
Le problème c'est que j'ai des caractères incongrus qui sortent de je sais pas où et qui apparaissent
 
Voilà ce qui est affiché lorsque j'execute le code suivant
 
Broadcast  
150.1.255.255
0080D4011418Ð
150.1.0.15
0080F4010E17ã
150.1.0.20
0080E4011621◄
150.1.0.15
 
j'ai à chaque fois un caractère à la con en plus pour le champ addresse MAC et j'vois pas d'où il sort ???
 
help  :cry:  

Code :
  1. FILE *fbootp;
  2. if ( (fbootp = fopen("BootPdb.txt","r" )) == NULL) printf("ERREUR ouverture du fichier BootPdb.txt" );
  3. char *tmp,c;
  4. tmp = new  char[];
  5. int i=0;
  6. while ((c=fgetc(fbootp)) != EOF)
  7. {
  8.      if ( (c == '\t') || (c =='\n') )
  9.      {
  10.       puts(tmp);
  11.       tmp = new  char[];
  12.       i=0;
  13.      }
  14.      else
  15.      {
  16.       tmp[i]=c;
  17.       i++;
  18.       }
  19. }

Reply

Marsh Posté le 12-06-2003 à 14:27:53   

Reply

Marsh Posté le 12-06-2003 à 14:53:06    

moi je t'aide si soit tu passes tout en C soit si tu passes tout en C++

Reply

Marsh Posté le 12-06-2003 à 14:54:28    

++Taz a écrit :

moi je t'aide si soit tu passes tout en C soit si tu passes tout en C++


 
ah oups oui c vrai qu'il y a un peu des deux ... ya juste les new à changer pour passer en C?

Reply

Marsh Posté le 12-06-2003 à 14:57:10    

oui. et c doit etre un int
 
et tu remplace ta boucle à 30c par scanf ou fgets

Reply

Marsh Posté le 12-06-2003 à 19:55:02    

Code :
  1. FILE *fbootp;
  2.  
  3.   if ( (fbootp = fopen("BootPdb.txt","r" )) == NULL) printf("ERREUR ouverture du fichier BootPdb.txt" );
  4.    
  5.   char *tmp,c;
  6.   tmp = new  char[];


 
il faut aussi que tu declare tout tes variables au debut du block


Message édité par xWillow le 12-06-2003 à 19:55:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed