Salut
J'ai un (gros) probleme avec un fichier texte presente de la maniere suivante :
(1,3,1)
(2,3,5)
(2,5,10)
(2,1,10)
(2,4,4)
...
Il faut que je reussisse a isoler les 3 nombres de chaque ligne pour les mettre dans un tableau mais vu que ce n'est pas un fichier data, je ne vois absolument pas comment faire... Pour l'instant j'ai le code suivant :
// test lecture lookup file
# include
# include <fstream.h>
int main(){
char str [80];
ifstream infile ("lookup.txt", ios::in);
while(infile.getline (str, 80, '\n')){
// mettre les nombres dans le tableau...
//std::cout<<str<<std::endl;
};
infile.close();
system("pause");
return 0;
}
Si quelqun pouvais me filer un coup de main ca serait vraiment sympa.
PS: desole pour les accents mais je suis en Irlande en ce moment, donc clavier QWERTY ;)
@djl
Je ne sait pas si ton code fonctionne etant donne qu'un nombre peut tenir sur deux caracteres, donc un 10 me donnerais 1 et 0 et pas 10... enfin je sais pas faudra que j'essaye. Mais c'est bon j'ai trouve la solution. Vla le code, ca pourra peut etre interesser qqun :
Le seul probleme c'est que j'utilise le getline seulement pour changer de ligne... Donc si qqun sait comment passer une ligne en utilisant l'operateur >> ca serait plus beau...
// on construit istringstream a partir de la chaine s
istringstream iss(s);
// c juste un char vu que les separateur sont des caracteres ',' ')' '(' ...
char c;
// tu te sert d'un istringstream comme cin, sauf que son buffer contient s, c'est a dire une ligne de ton fichier
iss>>c>>tab[0]>>c>>tab[1]>>c>>tab[2];
es-ce-que les flux marchent avec des lignes du style :
0.55 4 0.0
12 1.456 0.45
sachant que les points sont pour des nombres a virgules ;) et essayer de les mettre directement dans une structure (ou une classe puisque C++)
struct coin{
float x;
float y;
float z;
}
...
infile>>coin;