Accueil > Forum > > > > no match for 'operator>>' in 'std::cin >>
no match for 'operator>>' in 'std::cin >>
samedi 28 novembre 2009 à 11:27:31 |
no match for 'operator>>' in 'std::cin >>

cissine
|
Bonjour,
Mon problème est le suivant :
lors ce que je compile mon programme C++ sous codeblocks ou visual c++ 2008 express j'ai cette erreur là:
In member function void Banque::interfaceCreerClient()
" no match for 'operator>>' in 'std::cin >> nomClient
voici le code :
void Banque::interfaceCreerClient() {
cout << endl;
cout << "Entrez le nom du nouveau client :" << endl;
String nomClient;
cin >> nomClient;
if(isClientExiste(nomClient)) {
cout << "Un client du meme nom existe deja." << endl;
interfaceCreerClient();
} else {
creerClient(nomClient);
cout << "Client cree." << endl;
interfaceAdministrateur();
}
J'ai aussi declarer un "using namespace std;" pour ne plus marquer std::cin ou std::cout
Merci d'avance pour votre aide.
|
|
samedi 28 novembre 2009 à 13:14:37 |
Re : no match for 'operator>>' in 'std::cin >>

CptPingu
|
J'ai aussi declarer un "using namespace std;" pour ne plus marquer std::cin ou std::cout
Beurk ! A éviter. Mieux vaut écrire std::, ça t'éviteras bien des problèmes plus tard. Si tu veux vraiment écrire cout au lieu de std::cout, préfère : "using std::cout;". Faire sauter tout les namespaces, ce n'est pas très judicieux...
Sinon, pour ton erreur, il te dit qu'il ne sait pas comment remplir la variable nomClient, car celle-ci n'est pas de type string, mais est de type String. Donc il va chercher la surcharge de l'opérateur >> dans la classe personnalisé String.
Est-ce une faute de frappe, ou as-tu vraiment créer une classe String ?
|
|
samedi 28 novembre 2009 à 15:46:48 |
Re : no match for 'operator>>' in 'std::cin >>

cissine
|
bonjour,
Merci pour votre aide, et ce n'est pas une faute de frappe, mais j'ai vraiment créer une classe String.
Avant j'avais pleins d'erreurs qui disait la même chose pour operator << quand je faisais des cout, et avec le déclaration de unsing namespace std ca ma résolut le problème mais la...
la voila ma classe String:
#include <string.h>
#include <iostream>
#include "String.h"
String::String ( char* newStrRep)
{
int taille = strlen(newStrRep);
strRep = new char[taille];
strcpy(strRep, newStrRep);
}
String::String ( const String& newString )
{
int taille = strlen(newString.strRep);
strRep = new char[taille];
strcpy(strRep, newString.strRep);
}
String::~String ()
{
delete[] strRep;
//delete this;
}
String& String::operator = ( const String& newString)
{
delete[] strRep;
int taille = strlen(newString.strRep);
strRep = new char[taille];
strcpy(strRep, newString.strRep);
return *this;
}
void String::print () const
{
std::cout << strRep;
}
int String::operator == ( const String& newString)
{
if( strlen(strRep) != strlen(newString.strRep) )
{
return 0;
} else
{
for( int i = 0 ; i < strlen(strRep) ; i++)
{
if( strRep[i] != newString.strRep[i] )
{
return 0;
}
}
return 1;
}
}
String String::operator + (String & newString )
{
int newLength = strlen(strRep) + strlen(newString.strRep);
char* newStrRep = new char[newLength];
for(int index = 0 ; index < strlen(strRep) ; index++ )
{
newStrRep[index] = strRep[index];
}
for(int index = 0 ; index < strlen(newString.strRep) ; index++ )
{
newStrRep[strlen(strRep) + index] = newString.strRep[index];
}
return String(newStrRep);
}
char & String::operator [] ( int index)
{
return strRep[index];
}
String::operator char* () const
{
return strRep;
}
void String::setString ( char * newStrRep)
{
delete[] strRep;
int taille = strlen(newStrRep);
strRep = new char[taille];
strcpy(strRep, newStrRep);
}
Si vous pouvez m'aider s'il vous plait.
|
|
samedi 28 novembre 2009 à 15:51:24 |
Re : no match for 'operator>>' in 'std::cin >>

CptPingu
|
Ce n'est pas compliqué, tu dois redéfinir operator<< dans ta classe "String", sinon std::cout ne sait pas comment intéragir avec. Ce n'est pas parce que tu as nommé ta classe "String" que l'intéraction est automatique.
C'est exactement comme si tu faisais:
Toto t;
std::cout << t << std::endl;
Il y a incompréhension de la part du compilateur.
De même, pour intéragir avec std::cin, il te faut redéfinir operator>>, un peu comme tu l'as fait pour operator[] et operator+.
|
|
samedi 28 novembre 2009 à 16:00:20 |
Re : no match for 'operator>>' in 'std::cin >>

cissine
|
Ah d'accord, alors pour cout je fais :(par exemple je sais si c'est exactement ça)
ostream &operator<<( ostream &out, String &chaine )
{
out << chaine.getChaine();
return out;
}
avec
char *String::getChaine()
{
return chaine;
}
Mais pour cin je ne vois pas trop comment faire.
|
|
samedi 28 novembre 2009 à 16:35:22 |
Re : no match for 'operator>>' in 'std::cin >>

CptPingu
|
Un petit exemple de redéfinition de flux pour std::cout et std::cin, qui devrait répondre à ta question:
Code C/C++ :
#include <iostream>
class T
{
friend std::istream& operator>> (std::istream& i, T& t);
friend std::ostream& operator<< (std::ostream& o, const T& t);
public:
T () {}
private:
std::string s_;
};
std::istream& operator>> (std::istream& i, T& t)
{
i >> t.s_;
return i;
}
std::ostream& operator<< (std::ostream& o, const T& t)
{
o << t.s_;
return o;
}
int main()
{
T t;
std::cout << "Entrez t: ";
std::cin >> t;
std::cout << t << std::endl;
return 0;
}
|
|
samedi 28 novembre 2009 à 16:55:21 |
Re : no match for 'operator>>' in 'std::cin >>

cissine
|
Merci, et au niveau du T.h il faut mettre quoi comme fonction public ?
|
|
samedi 28 novembre 2009 à 16:55:35 |
Re : no match for 'operator>>' in 'std::cin >>

cissine
|
Merci, et au niveau du T.h il faut mettre quoi comme fonction public ?
Je parle des opérateur >> et << .
|
|
samedi 28 novembre 2009 à 17:06:52 |
Re : no match for 'operator>>' in 'std::cin >>

cissine
|
C'est bon merci à vous. maintenant je compile j'ai plus d'erreur.
|
|
samedi 28 novembre 2009 à 17:23:54 |
Re : no match for 'operator>>' in 'std::cin >>

cissine
|
Maintenant lors de la compilation du programme j'ai l'erreur suivante, sachant que j'ai fais ce que vous m'avez demandé de faire.
>> binaire : aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::string' ou il n'existe pas de conversion acceptable
|
|
Cette discussion est classée dans : in, cout, std, cin, nomclient
Répondre à ce message
Sujets en rapport avec ce message
message d erreur: ambiguous overload for 'operator>>' in 'std::cin >> a [ par I0o0I ]
Hello, J suis désolée, c est une question d ultra-débutant mais c'est juste que j aimerais bien etre sure de comprendre les messages d erreur. J ai l
retour à la ligne [ par DarkC0 ]
#include #include #include #include #include #include void retourLigne(int x, int y); void cadre_T(); void Color(int couleurDuTexte,int couleur
verification entrée cin [ par fhoest ]
Bonjour, je voudrai faire une vérification sur une entrée std::cin mon problème est que si je met par exemple ll et ensuite je valide par la touche "r
[dev c++ / SFML] compilation OK mais exécutables muets o_O [ par dubstructor ]
Bonsoir à tous, ce post s'adresse à ceux qui sont familiers avec SFML. voilà après m'être bataillé un après midi, j'ai enfin réussi à compiler une p
Segfault bizarre sur un "cout" [ par Thunder255 ]
Bonjour à tous, Voilà je fais face à un problème assez bizarre : [code=cpp]int main() { Graph g = Graph(5, 0.5); //g étant de type list > //rep
aide pour un programme en c++ novice [ par tooth ]
bonjour j'ai besoin d'aide pour compiler et exécuter un programme qu'on nous a demandé à l'école, j'ai jamais étudié de c++ alors je galère bcp, voilà
Simple example OpenMP qui plante [ par uriot ]
Bonjour, J'essaye un example simple d'utilisation de openMP sous windows et ca plante juste aprés la ligne std::cout << "start thread.\n" Je ne comp
Allocation statique ou dynamique [ par luhtor ]
Bon alors, j'ai un exemple de programme. Mais je me pose la question de sa validité sachant que ce que vous allez voir. C'est correct dans certain lan
Vider cin [ par Mycado ]
Bonjour,J'ai un problème avec la fonction cin, quand je fais: char out;cin >> ou
saisie 1 seule lettre, pas le reste [ par blinix123 ]
Yop all, Voilou petit probleme en C++, je pose une question a l'utilisateur et il doit repondre par O ou N, or s'il tape OONAZ, et bien le programme v
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|