begin process at 2012 05 29 20:34:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problème avec les std::string [VC++6.0]


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec les std::string [VC++6.0]

dimanche 9 novembre 2003 à 22:32:04 | Problème avec les std::string [VC++6.0]

D1m3x

Je suis en train de programmer un petit programme où j'utilise les templates, c'est la première fois que j'en utilise, alors je ne connais pas encore tout, mais cette fois-ci le problème n'est pas vraiment du aux templates mais plutôt aux strings du C++, en fait voici une class que j'ai déclaré avec 2 class templates. La première sera std::string et la deuxième int,pas plus compilqué! Dans une de mes fonctions, la fonction GiveInfos( ) de la class, j'utilise cout<<; de cette manière :


// aPrenom = std::string
cout << "Prenom : " << aPrenom << endl;


qui est censée me donné le prenom qui fut donné en premier argument du constructeur...

Lors de la compilation ke reçois l'erreur:

error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class st
d::allocator<char> >' (or there is no acceptable conversion)

Ce n'est pas vraiment la plus petite erreurs que je connaisse mais elle n'est pas trop compliquée, en fait elle me dit que aucun operateur binaire n'est déclarer pour prendre un std::string en paramètre... Donc ça voudrait dire que cout ne peut pas utiliser les strings ... :'( est-ce que quelqu'un peut m'éclairer sur ce point?

Merci d'avance


[DmX]
dimanche 9 novembre 2003 à 22:34:48 | Re : Problème avec les std::string [VC++6.0]

BruNews

Administrateur CodeS-SourceS
Si tu tapes un POINT derriere aPrenom, y a pas une propriete de la classe qui donne char* ?
BruNews, ciao...
dimanche 9 novembre 2003 à 22:41:34 | Re : Problème avec les std::string [VC++6.0]

D1m3x

Non, il n'y a rien si je met un point, j'ai aussi essayé avec le '->" rien non plus... Normalement cout accepte les string ou bien?

[DmX]
dimanche 9 novembre 2003 à 22:44:57 | Re : Problème avec les std::string [VC++6.0]

BruNews

Administrateur CodeS-SourceS
Me semblait qu'il y avait C_Str() ou un truc de ce genre.
Vu que je ne fais ni DOS ni string, on va attendre un pro.
BruNews, ciao...
dimanche 9 novembre 2003 à 22:48:29 | Re : Problème avec les std::string [VC++6.0]

bouba

Bien sur que oui, cout accèpte les strings, a mon avis tu as du faire une autre erreur ailleurs !!!
Faudré que tu nous donnes ton code pour piger le truc. Y'a peut-etre aussi un erreur dans les includes! Si tu as fait
#include <string.h> // Gestion des chaînes C
remplace le par
#include <string> // Pour le C++
Bouba
dimanche 9 novembre 2003 à 22:48:51 | Re : Problème avec les std::string [VC++6.0]

D1m3x

Alors je fait appel à un PRO des strings, non je ne parle pas d'une **** MDR :p non mais c'est sérieux j'ai besoin de ce code :)
Parce que la fonction C_Str je trouve pas... :'(

SVP aidez moi

Merci d'avance

[DmX]
dimanche 9 novembre 2003 à 22:53:50 | Re : Problème avec les std::string [VC++6.0]

D1m3x

non, je n'ai pas fait d'erreur autre part, je ne crois pas en tout cas, voici le code en entier, réparti sur les deux fichier :

Le fichier CAdresse.h



#ifndef __DP_CADRESSE_CLASS_H__
#define __DP_CADRESSE_CLASS_H__

#include "Includes.h"

#include <iostream>
#include <cstring>
using namespace std;

/********************************************************************
Déclaration de la classe CAdresse - qui prend 2 templates!!!
*********************************************************************/

template <class A, class B>
class CAdresse
{
private :
A aPrenom,
aNom,
aVille,
aPays;

B bCodePostal;

public :

void GiveInfos( );

CAdresse( A, A, A, A, B );
~CAdresse( );

};

/********************************************************************
Implémentation de la class CAdresse
*********************************************************************/

template <class A, class B>
CAdresse<A, B>::CAdresse( A aFirstName, A aName, A aTown, A aState, B bPostalCode )
{
aPrenom = aFirstName;
aNom = aName;
aVille = aTown;
aPays = aState;

bCodePostal = bPostalCode;
}

template <class A, class B>
CAdresse<A, B>::~CAdresse( )
{
;
}

template <class A, class B>
void CAdresse<A, B>::GiveInfos( )
{
cout << "Prenom : \t\t"
<< aPrenom << endl
<< "Nom de famille : \t"
<< aNom << endl
<< "Ville : \t\t"
<< aVille << endl
<< "Pays : \t\t\t"
<< aPays << endl
<< "Code Postal : \t\t"
<< bCodePostal
<< endl;
}

#endif



Le Fichier main.cpp


#include <iostream>
using namespace std;

int main ( void )
{
CAdresse<string, int> adress( "Greg", "Saive", "La Calamine", "Belgique", 4720 );

adress.GiveInfos( );

return 0;
}



Le code n'a rien d'exceptionnel, il ne fait que donné le nom... mais c'est pour me faire un exemple d'utilisation des templates, je viens d'en apprendre l'utilité :) j'espère que vous allez pouvoir m'aider :)


[DmX]
lundi 10 novembre 2003 à 07:14:18 | Re : Problème avec les std::string [VC++6.0]

bouba

Salut, j'ai compilé ton code pour voir et ca marche nickel !!!
Essais avec un autre compilateur car il ne me semble pas qu'il y ait d'erreurs dans ton code. C'est bizar !!! C'est peut être Visual C++ qu'a un bug, vu comme les produits Microsoft sont bien fait !!! Perso j'ai compilé ca sous Linux avec g++ et c'est bon.
Sinon bé tu n'a plus qu'a surcharger << pour qu'il affiche des strings si ca fonctionne vraimment pas!
Alé, ++.
Bouba
lundi 10 novembre 2003 à 07:45:48 | Re : Problème avec les std::string [VC++6.0]

garslouche

C'est BruNews qui a raison!
le pb des string dans le namespace std c'est qu'il ne sont pas terminé par un \0
Pour obtenir la version "classique" d'une chaine de caractères en C il faut utiliser c_str.

Donc dans ton cas:


cout << "Prenom : \t\t"
<< aPrenom.c_str() << endl
<< "Nom de famille : \t"
<< aNom.c_str() << endl
<< "Ville : \t\t"
<< aVille.c_str() << endl
<< "Pays : \t\t\t"
<< aPays.c_str() << endl
<< "Code Postal : \t\t"
<< bCodePostal
<< endl;
lundi 10 novembre 2003 à 08:46:38 | Re : Problème avec les std::string [VC++6.0]

D1m3x

Ah bon, ben merci bouba, et puis merci à garslouche et brunews, je vasi tout de suite essayer cette fonction :)

[DmX]

1 2

Cette discussion est classée dans : problème, string, class, utilise, std


Répondre à ce message

Sujets en rapport avec ce message

utlisation de la classe string [ par borgeomi ] borgeomibonjouuuuuuur !!!!!nouveau programmeur en C ++ ( mais vieux en cobol )sous visual C++création d'une fonction qui enlève les espaces de début e string [ par blueburry ] bonjour,je suis en train de programmer sur visual c++.g un probleme avec les  string, je fais:char nom[26];char sport[26]; string nom = &nom[0];string string et + [ par blueburry ] bonjour,je suis en train de programmer sur visual c++.g un probleme avec les  string, je fais:char nom[26];char sport[26]; string nom = &nom[0];string pb avec les string !!! [ par ElectricalMan ] slt,j'ai qqs "erreurs" à la compilation ! c à s'arracher les cheveux, pouvez vous m'aider svp : #include  #include #include using namespace std;< Probleme avec pointeur urilisant string [ par Orlyn ] Bonjour, Je viens de finir mon prog de gestion de liste d'attente avec des structures comme ceci : struct Maillon { int numero; Maillon *suivant; probleme de map erreur de link [ par hisoka56 ] Bonjour, j'ai un problème de link: Linking... edition.obj : error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in .... Cela symbole externe non résolu [ par informatixa ] Voila mon erreur et, je ces pas d'ou sa peut venir.Login.obj : error LNK2001: symbole externe non résolu "public: __thiscall ConfigFile::ConfigFile(cl La class string [ par jderf ] Je suis débutant et je teste la class string. Voici un code tous simple, mais y'a un probleme de conversion à la compil que je ne comprend pas. Les er problème sur une création de classe [ par simonpelloquin ] Bonjour, Je bloque sur un problème de définition de classe et ça commence à me prendre la tête. Est-ce que vous pourriez m'indiquer ce qui ne vas pas Compiler un programme écrit en C++ utilisant une bibliothèque C. Erreurs... [ par Virus721 ] Bonjour tout le monde ! :) Voila j'essaye de me coder un petit jeu avec la bibliothèque SDL 1.2 et l'aide du site du zéro. J'essaye autant que possib


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,544 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales