Lire des integer dans un fichier avec FileStream ReadByte

pyr0123
Messages postés
48
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
13 juillet 2010
- 21 févr. 2008 à 18:27
Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
- 22 févr. 2008 à 10:27
Bonjour,

J'écris une suite de 3 entiers dans un fichier séparé par une virgule, et un point-virgule entre 2 bloc de trois comme ceci :




21,55,87;54,8,102;54,0,88;   etc..




J'aimerai pouvoir les extraire, entier par entier.
J'utilise :




int tab[100];


FileStream^ file = File::OpenRead(fichier);
if(tab[i] = file->ReadByte()) != ';')
(...)

Le probleme de

ReadByte() est qu'il lit byte par byte, et le renvoi un char.
c.a.d. quand je printf mon tab[i] avec %d il me renvoie n'importe quoi, et avec %c il me renvoie le bon chiffre.
Moi j'aimerai au moins qu'il me renvoie un int, apres avec un ptit algo je pourrai concaténer les int récupérés jusqu'a la virgule.

Merci de votre aide.

1 réponse

Pistol_Pete
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
7
22 févr. 2008 à 10:27
Salut
Si ReadByte te renvoie un char, il ne reste plus qu'a le convertir en int avec atoi();

char c[2];
int tab[100];
FileStream^ file = File::OpenRead(fichier);
if((c[0] = file->ReadByte()) != ';')
{
   c[1]=0;      //fin de chaine
   tab[i]=atoi(c);
}

A+
Mon site internet : http://pistol.petesampras.free.fr
0