Bonjour,

J'ai le problme suivant que je n'arrive pas à resoudre :

J'ai un fichier texte structuré comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.