[Debutant] Probleme lecture fichier
Bonjour,
J'ai le problme suivant que je n'arrive pas à resoudre :
J'ai un fichier texte structuré comme suit :
Code:
1 2 3 4 5
|
3
10 15 46 65.32
1 3 5 6 78
5.3 86 7 12.0 |
La chiffre de la premiere ligne, appellé "ordre" dans le prog, nous donne le nombre de ligne du fichier texte. (il n'a pas d'importance dans notre probleme).
L'objectif de mon prog est d'arriver a mettre les valeurs qui suivent dans un tableau de double long a deux dimensions (les valeurs sont sépares par des espaces).
Autrement dit :
tab[0,0] = 10;
tab[0,1] = 10;
tab[0,2] = 46;
tab[0,3] = 65.32;
...etc
J'ai écrit le code suivant, (en m'aidant des FAQs) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
ordre=0;
// le constructeur de ifstream permet d'ouvrir un fichier en lecture
std::ifstream fichier( "monFichier.txt" );
if ( !fichier ) // ce test échoue si le fichier n'est pas ouvert
{
cout<<"Le fichier n'existe pas" <<endl;
}
else
{
std::string ligne; // variable contenant chaque ligne lue
std::getline( fichier, ligne );
// créer un flux à partir de la chaîne à convertir
std::istringstream iss(ligne);
// convertir en un int
iss >> ordre;
cout << "Ordre: "<< ordre <<endl;
tab = new double long * [ordre]; // on détermine un tableau de 'ordre' pointeurs de type double long
for (int i=0;i<=ordre;i++)
{
tab[i]= new double long[ordre+1]; // on détermine un tableau de 'ordre' double long pour chaque pointeur précédent
}
int i = 0;
double long element;
while ( std::getline( fichier, ligne ) )
{
// decouper la ligne
istringstream iss( ligne );
string mot;
int j =0 ;
while ( std::getline( iss, mot, ' ' ) )
{
// on convertit le mot en double long
//convertir en double long
std::istringstream iss2(mot);
iss2 >> element;
tab[i,j] = element; ///////////////PROBLEME ICI
cout << tab[i,j] << endl;
j++;
}
i++;
}
} |
Le probleme étant qu'à la compilation il me m'est :
"cannot convert `long double' to `long double*' in assignment "
concernant la ligne "tab[i,j] = element;"
Je ne comprends pas pourquoi, "element" est déclaré en double long, j'ai un peu tout essayer, ca ne marche pas....Que dois-je faire?
Merci d'avance de votre aide.