Probleme avec getline istringstream dans un for

Résolu
riminii Messages postés 3 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 25 mars 2005 - 24 mars 2005 à 12:22
Melkensh Messages postés 1 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 24 décembre 2005 - 24 déc. 2005 à 11:20
bonjour je suis en train de créer un programme lisant un lsystem et en resort des coordonnées...
J'en suis au début cad la lecture du fichier lsystem:
celui ci ce compose de cette manière:
1ere ligne : nombre de regles
2nde ligne: nbre de caracteres max par regles
a partir de la 3eme : les regles lignes par lignes.

voici le code :
#include
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <string>
#include <sstream>


using namespace std;


// Le programme recoit 5 paramètres sur la ligne de commande :
// 1- le nom d'un fichier contenant la description d'un L-system.
// 2- un nombre en virgule flottante indiquant la longueur d'un segment.
// 3- un nombre en virgule flottante indiquant un angle de rotation (indiqué en radians).
// 4- un entier indiquant un n° de génération.
// 5- le nom d'un fichier dans lequel le programme doit écrire ses résultats.


main(int argc, char **argv)
{
char **regles;
double l,a;
int g,nr,mc;
string R,n,m;
l=atof(argv[2]);
a=atof(argv[3]);
g=atoi(argv[4]);
ifstream fi(argv[1]);
ofstream fo(argv[5]);

getline(fi,n);
istringstream N(n);
N>>nr;
getline(fi,m);
istringstream M(m);
M>>mc;
regles=new char*[mc+1];
*regles=new char[nr];

for(int i=0;i!=nr+1;i++)
{
getline(fi,R);
istringstream RG(R);
RG >> regles[i];
cout<<regles[i]<<endl;
system("pause");
}
system("pause");
}



Le code compile avec devc++5 et le programme se lance, cependant le programme s'arrete dans le for lors de la lecture de la derinière regle dans le fichier... fin bref je ne comprend pas car ca fonctionne pour le regles davant qui se mettent tranquillement dans le tableau regle pis lors de la dernière le for ne se finit mm pas le prog se quitte...
merci de votre aide...

7 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
24 mars 2005 à 14:14
Il y a une mauvaise gestion du tableau
regles=new char*[nr];
for(i = 0; i < nr; i++)
regle[i] = new char[mc+1];

=> cela crée un tableau de nr chaines de mc char.

pour lire :
for(i=0;i < nr;i++)
{
}

// pour deétruire le tableau :
for(i = 0; i < nr; i++)
delete[] regle[i];
delete[] regle;
3
riminii Messages postés 3 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 25 mars 2005
24 mars 2005 à 17:56
merciiii bcp...

c bien sympa ca ma fait gagner pas mal de tps ;)
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
24 mars 2005 à 19:46
Tu gagnerais beaucoup de temps en utilisant la STL :)
0
riminii Messages postés 3 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 25 mars 2005
25 mars 2005 à 09:05
heu... c koi la STL ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
25 mars 2005 à 18:58
Une partie de la bibliothèque standard du C++ (SL) proposant divers
type de conteneurs et d'algorithmes génériques basés autour du concept
d'iterateur. On l'appel STL (Standard Template Library, bibliothèque
standard de modeles) car c'était son nom à l'époque du C++
pré standard, elle à été dévelopée par SGI et HP à partir de 1994.



L'article sur wikipedia:

http://fr.wikipedia.org/wiki/Standard_Template_Library



La documentation sur le site de SGI:

http://www.sgi.com/tech/stl/





Par exemple l'entete <string> que tu utilises et le modele
std::basic_string (dont std::string est un typedef) fait partie de la
STL.
0
Vaaaaal Messages postés 1 Date d'inscription vendredi 1 avril 2005 Statut Membre Dernière intervention 1 avril 2005
1 avril 2005 à 16:01
C'est pas bien de faire faire sont projet info par d'autre ...

Madame Warzée y met tellement de coeur ...



heheheh
0
Melkensh Messages postés 1 Date d'inscription samedi 24 décembre 2005 Statut Membre Dernière intervention 24 décembre 2005
24 déc. 2005 à 11:20
Bonjour je constate que Riminii a eu le même projet informatique que moi,

en revanche je n'arrive pas sur DEV ++ à mettre un fichier en entrée comment est ce qu'on peut faire??
0