IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

[Debutant] Probleme lecture fichier


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut [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 : 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.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    tab[i,j] équivaut à tab[j], ce que tu veux écrire c'est en fait tab[i][j].

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup, ca marche nikel maintenant....!!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Desolée, encore une petite question :

    Je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <math.h>
    ...
    long double val = tab[j][k];             
    if(abs(val)>=Pmax)
    {
               ....
    }
    ...
    et j'ai droit a la compilation a :
    "call of overloaded `abs(long double&)' is ambiguous
    candidates are: int abs(int)
    long long int __gnu_cxx::abs(long long int)
    long int std::abs(long int)"

    Je vois pas comment lever l'ambiguitée ? Une idée ?
    Merci d'avance...

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    La fonction abs travaille sur des entiers. Regarde si tu peux utiliser fabs (me rappelle jamais si c'est standard), sinon au pire écris toi-même la fonction.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    En fait fallait "includer" <cmath> et non pas <math>, va savoir pourkoi...lol...
    Merci beaucoup de ton aide!!

  7. #7
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Citation Envoyé par Loulou24
    La fonction abs travaille sur des entiers. Regarde si tu peux utiliser fabs (me rappelle jamais si c'est standard), sinon au pire écris toi-même la fonction.
    Je sais pas mais chez moi (VC++ 7.1) ya des surcharges abs pour : int, long, double, float, long double en tout cas.

    Par contre j'ai aussi vu fabs() dans math.h donc ça devrait être standard. Chez moi les deux marchent...
    Fiquet
    - FAQ SDL
    - FAQ C++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [debutant] probleme de fichier
    Par lamoueste dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 22/02/2006, 15h19
  2. Probleme lecture fichier acces sequentiel
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 13h39
  3. Probleme lecture fichier
    Par CaptainChoc dans le forum C++
    Réponses: 5
    Dernier message: 06/03/2005, 10h40
  4. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo