Transfert string en double. (C++)

wallbrid Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut tous le monde,
je commence en c++ et je dois faire une lecture de fichier composer comme suit :
(1.2132,2.222222)(1.231321311,3.311)
(1.231321311,3.311)
(4.4444,5.5222)(6.44446,8.82)

Je dois lire chacun de ces enregistrement comme des points (x,y) pour placer dans un plan cartésien, mais avant je dois les ajouter a un tableau en double et trouver le nombre de point pour crée ce tableau avec les bonnes dimension.
J'essais et encore mais je ne suis pas capable de faire une bonne lecture et surtout de le transferrer dans un double j'ai passé déja quelque jours et je suis déja au point de départ.


Mon code :
#include "stdafx.h"
#include "iostream"
#include "fstream"
#include "string"

using namespace std;

void lecture();

void main()
{
lecture();
}
void lecture()
{
int posf = 0, posd = 0, i = 0, posm=0;
string ligne, nbtemp, chaine[60];

ifstream flot("c:\\fichier.txt", ios::in); //ouverture du ficher

while(flot)
{
getline(flot,ligne);
posd = ligne.find_first_not_of("(");
posm = ligne.find_first_of(",");
posf = ligne.find_first_of(")");

posf = posf -(posm);
nbtemp.assign(ligne,posd,posm-1);
chaine[i]=nbtemp;
i++;

nbtemp.assign(ligne,posm+1,posf);
chaine[i]=nbtemp;
i++;
posf=posm=posd=0;
}

for(int z=0;z<10;z++)
{
double a;
a = Convert.Todouble(chaine[0]);
cout << chaine[z] << endl;
}
system("pause");

}
A voir également:

2 réponses

Toupi
 
Regarde du côté des fonctions strtol et compagnie, tu trouveras pas mal de choses dans la doc de string, notamment.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
je lirais chaque ligne comme un string, je changerais chaque (), en espace et convertirais le string en doubles avec sprintf.
0