Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1

    Homme Profil pro
    retraité
    Inscrit en
    septembre 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : septembre 2006
    Messages : 210
    Points : -13
    Points
    -13

    Par défaut tableau attention indices

    bonjour,
    Dans une boucle sans fin (que je maitrise en sortant par un zéro pour rassurer les lecteurs et censeurs)
    une ligne tableauX[i] ne veux pas admettre une chaine abc!
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
        int i=0,yy=5;int y=0;
        string autrIncr="";
        string tableauX[yy];
        do
            {
            cout<<"<0> ou <E> pour transfert num."<<i<<" ";
            getline(cin, autrIncr);
                if  (autrIncr == "")
                    {
                    rlfQuat="P7BDBIJO.rtf";//n.b.ici cette variable...change à chaque tour,je n'ai rien écrit pour ne pas alourdir
                    cout<<rlfQuat<<endl;
                    string az=rlfQuat;
                    tableauX[y]=az;
                    y++;
                    cout<<i<<"sz :"<<tableauX[y].size()<<"[*"<<tableauX[y]<<endl;
                    }
                if  (autrIncr !="")
                    {i=0;}
            }
        while (i>0);
    cout<<"tableauX[y] est vide!"<<endl;
    Dans toutes les fonctions que j'ai créé avec succès cette écriture existe 1000 fois!!!Quelles donc les conditions j'ai oublié?
    Vous allez trouver évidemment.
    Cordialement.
    p.s.:je vous ai simplifié le code sauf err d'écriture car non vérifié in situ

  2. #2
    Expert Confirmé Sénior

    Homme Profil pro Pierre
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 182
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 182
    Points : 5 060
    Points
    5 060

    Par défaut

    Bonjour l'ami,

    Quels sont exactement tableauX, son [] et i?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • La plus sotte des questions est celle qu'on ne pose pas.

    Pour faire des graphes, essayez yEd.

  3. #3

    Homme Profil pro
    retraité
    Inscrit en
    septembre 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : septembre 2006
    Messages : 210
    Points : -13
    Points
    -13

    Par défaut

    j'ai refais mon code au lieu d'ajouter des lignes de texte

  4. #4
    Expert Confirmé Sénior

    Homme Profil pro Pierre
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    2 182
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 2 182
    Points : 5 060
    Points
    5 060

    Par défaut

    Et c'est censé faire quoi?

    Quelle est ce festival de variable mal nommées (rlfQuat= regular line format Quaternion? az= zorglub array?)

    Le code n'est même pas directement reformulable en phrases

    "répéter ... tant que i est positif.": qu'est i? pourquoi positif plutot que non nul?
    Code :
    1
    2
    3
    4
                    rlfQuat="P7BDBIJO.rtf";
                    cout<<rlfQuat<<endl;
                    string az=rlfQuat;
                    tableauX[y]=az;
    tableauX[y] est un string, pourquoi passer par une string intermédiaire? pour copier une fois de plus?
    rlfQuat est une string ou possède déjà un constructeur et une conversion depuis string.
    Ceci serait mieux:
    Code :
    1
    2
    3
                    rlfQuat="P7BDBIJO.rtf";
                    cout<<rlfQuat<<endl;
                    tableauX[y]=rlfQuat;
    Tu n'as pas testé le résultat de getline(). Normalement, le code devrait être:
    Code :
    1
    2
    3
    if(getline(istream, mystring)) {
        traiter mystring
    }
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • La plus sotte des questions est celle qu'on ne pose pas.

    Pour faire des graphes, essayez yEd.

  5. #5

    Homme Profil pro
    retraité
    Inscrit en
    septembre 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : septembre 2006
    Messages : 210
    Points : -13
    Points
    -13

    Par défaut

    j'ai trouvé.
    L'incrémentation de la boucle avec i servait d'indice au tableau:erreur!
    La sortie par zéro ne plaisait alors pas.
    J'ai ajouté un compteur y++; affecté maintenant au tableau en plus de i++;
    toujours affecté à la boucle en maintenant tout va bien.
    La string intermédiaire est restée par erreur quand je cherchais à tester rlfQuat pour détecter l'origine du problème(ce n'était pas l'objet de mon post...
    ligne 11 il faut écrire au minimum string r.(ce n'était pas l'objet de mon post..).
    Bien se rappeler que les codes fournis sont des morceaux pas exactement fonctionnels,ce n'était l'objet de mon post... Je ne soumets jamais mon code, car c'est à moi de le faire fonctionner.
    J'ai construit/trouvé/adapté une boucle sans fin qui sort avec un zéro. Elle suffit à mon bonheur pour l'instant. Il faut avancer.
    -----------------
    Code :
    1
    2
     
    Tbl[indice]=string machin;
    fonctionne bien.C'est la mauvaise gestion des indices qui était la cause du plantage.
    -----------------
    Je note la gestion de if(getline.. pour plustard.
    Cordialement.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •