Transfert string en double. (C++)

Fermé
wallbrid Messages postés 2 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 9 octobre 2007 - 20 sept. 2007 à 04:06
dubcek Messages postés 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024 - 20 sept. 2007 à 14:32
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

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 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024 5 615
20 sept. 2007 à 14:32
je lirais chaque ligne comme un string, je changerais chaque (), en espace et convertirais le string en doubles avec sprintf.
0