Tableau dynamique et std::cin

Résolu
madhack Messages postés 23 Date d'inscription lundi 28 novembre 2016 Statut Membre Dernière intervention 27 avril 2017 - Modifié par cptpingu le 29/11/2016 à 10:29
madhack Messages postés 23 Date d'inscription lundi 28 novembre 2016 Statut Membre Dernière intervention 27 avril 2017 - 29 nov. 2016 à 22:42
Bonjour,

Je viens de commancer à apprendre le c++ avec le livre du zero (ancien nom) de Monsieur NEBRA et SCHALLER.

Au niveau du chapitre sur les tableaux dynamiques, j'ai voulu créer un petit programme qui prend la forme suivante :

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<double>tableauNoteUserDynamique(0);
    char yesNoUserNeed();
    do
    {
        cout<<"Veuillez entrer votre note : "<<endl;
        cin>>tableauNoteUserDynamique.push_back();
        cout<<"Avez vous d'autres note a enregistrer yes(y) no (n)"<<endl;
        cin>>yesNoUserNeed;
    }while(yesNoUserNeed==y);
    return 0;
}


L'objectif est de permettre à un utilisateur de rentre autant de note qu'il le veuille.
Je suis rentré dans une boucle do while peut être mal écrite avec l’égalité mais l'erreur vient de la ligne :
cin>>tableauNoteUserDynamique.push_back();
D:\c++\madbox\fonction\tableau\moyenneTabUserDynamique\main.cpp|14|error: no matching function for call to 'std::vector<double>::push_back()'|


Voila si quelqu'un pouvais éclairer ma lanterne merci d'avance.

Veuillez excuser mon orthographe et surtout les grossièretés que je peux écrire en C++

Cordialement madbox

3 réponses

nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
Modifié par cptpingu le 29/11/2016 à 10:54
Salut,

Le push_back est une fonction et non un attribut. Donc il faut faire:

    do
    {
        cout<<"Veuillez entrer votre note : "<<endl;
        double dValue;
        cin>>dValue;
        tableauNoteUserDynamique.push_back(dValue);
        cout<<"Avez vous d'autres note a enregistrer yes(y) no (n)"<<endl;
        cin>>yesNoUserNeed;
    }while(yesNoUserNeed=='y');



tu remarquera aussi que j'ai changé:

while(yesNoUserNeed=='y');


Ah aussi:

 char yesNoUserNeed(); 


est faux, pour crée un type char c'est seulement:
 char yesNoUserNeed; 



=> ajout des quotes.

Naga
0
Rejoignez-nous