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 1053 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 1053 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
Rejoignez-nous