(C ++) Problème avec la surcharge ">>" opérateur

voix
0

Une fois que je tente de compiler et exécuter un programme, des spectacles visuels cette erreur.

Erreur Erreur 1 C2679: binary '>>': aucun opérateur qui se trouve un opérande de droite de type 'const char [2]' (ou il n'y a pas de conversion acceptable)

Fonction de surcharge:

istream& operator>> (istream& InputStream, Description& rhs) {
InputStream >> rhs.mNumber >> , >> rhs.mLenght >> , >> rhs.mName;

return InputStream;
}

Classe Description défintion:

class Description {
private:
    int mNumber;
    int mLenght;
    string mName;
public:
    Description();
    Description(int, int, string);
    Description& operator= (const Description&);
    friend ostream& operator<< (ostream&, Description&);
    friend istream& operator>> (istream&, Description&);
};

Et oui, je l'ai fait:

#include <iostream>
#include <string>
#include <fstream>
#include <istream>
Créé 07/11/2018 à 20:08
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Dans la ligne

InputStream >> rhs.mNumber >> "," >> rhs.mLenght >> "," >> rhs.mName;

les ","pièces sont fausses. Vous ne pouvez pas lire quoi que ce soit dans une chaîne littérale.

Si vous attendez de voir le jeton ,dans le flux d'entrée, vous pouvez utiliser:

char dummy;
InputStream >> rhs.mNumber >> dummy >> rhs.mLenght >> dummy >> rhs.mName;
Créé 07/11/2018 à 20:14
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more