Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
837 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Solved] ERROR C2296: concatenation de chaines

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Solved] ERROR C2296: concatenation de chaines

n°1329335
agyspace
Posté le 21-03-2006 à 11:11:40  profilanswer
 

Salut,
 
J'ai un petit pb de compil que je n'arrive pas a resoudre....
 
Voici le code:

Code :
  1. ...
  2. } catch (MySQLException &e)
  3. {
  4. string errorMsg = "SQL Error - Error code:" << e.GetOrigin()
  5.  << " Code:" << e.GetCode()
  6.  << " SubCode:" << e.GetSubCode()
  7.  << " Specific Code:" << e.GetSpecificCode();
  8. }
  9. ...


les getters renvoient tous des int.
 
Et voici l'erreur:
error C2296: '<<' : illegal, left operand has type 'const char [42]'
 
Merci pour votre aide :)


Message édité par agyspace le 21-03-2006 à 14:32:50
mood
Publicité
Posté le 21-03-2006 à 11:11:40  profilanswer
 

n°1329361
agyspace
Posté le 21-03-2006 à 11:40:00  profilanswer
 

Bon j'ai a moitie resolu mon pb.Deja j'ai appris que je ne pouvais pas utiliser des << pour remplir une string. Soit!
J'ai donc mis directement la concatenation dans les arguments de mes fonctions, sans passer par une string internediaire.
En effet dans mon catch, je dois appeler une fonction de trace et une fonction qui throw une exception:
 

Code :
  1. catch(MySQLException &e)
  2. {
  3. myTrace(myCode,"SQL Error - Error code:" << e.GetOrigin()
  4.   << " Code:" << e.GetCode()
  5.   << " SubCode:" << e.GetSubCode()
  6.   << " Specific Code:" << e.GetSpecificCode());
  7. myException("SQL Error - Error code:" << e.GetOrigin()
  8.                         << " Code:" << e.GetCode()
  9.   << " SubCode:" << e.GetSubCode()
  10.   << " Specific Code:" << e.GetSpecificCode()),code);
  11. }


 
Bon comme vous le voyez ma 1ere fonction prend un entier(int) et une string et la 2e prend une string et un entier. Pour la premiere la concatenation passe tres bien.
Le pb vient de la seconde ou je me prends encore cette erreur de compil:
error C2296: '<<' : illegal, left operand has type 'const char [42]'
 
Je crois que ca vient du fait que je passe un argument apres un argument qui contient une suite de << mais je ne vois pas comment resoudre ce pb...
 
Une solution?
 
Merci beaucoup d'avance!

n°1329368
_darkalt3_
Proctopathe
Posté le 21-03-2006 à 11:45:11  profilanswer
 

c'est de la stl ? += ?

n°1329375
Taz
bisounours-codeur
Posté le 21-03-2006 à 11:48:30  profilanswer
 

t'as fait du ruby ou quoi toi ?

n°1329378
agyspace
Posté le 21-03-2006 à 11:53:09  profilanswer
 

Oui je sous Windows et j'utilise la STL. Je code sous Visual Studio.
Tu me parles de +=, mais justement est-ce la seule solution?
 
J'ai effectivement teste comme ca:
string errorMsg("SQL Error during RFD access - Origin:" );
errorMsg += e.GetOrigin();
errorMsg += " Code:";
errorMsg += e.GetCode();
errorMsg += " SubCode:";
errorMsg += e.GetSubCode();
errorMsg += " Specific Code:";
errorMsg += e.GetSpecificCode();
Et en placant errorMsg en arguments de mes 2 fontions ca marche parfaitement. Mais je trouve ca super lourd...
Il n'y aucun moyen de faire ca avec "<<"?

n°1329381
_darkalt3_
Proctopathe
Posté le 21-03-2006 à 11:54:49  profilanswer
 

euh non :??:
 
agyspace > et juste avec "+" dans ton appel de méthode ? note pour plus tard: "<<" et ">>" sont des opérateurs de streams il me semble. et string n'a pas de rapport avec stream.


Message édité par _darkalt3_ le 21-03-2006 à 11:57:34
n°1329440
Joel F
Real men use unique_ptr
Posté le 21-03-2006 à 13:29:25  profilanswer
 

ostringstream :o
dans #include <sstream>

n°1329485
agyspace
Posté le 21-03-2006 à 14:32:25  profilanswer
 

Joel F a écrit :

ostringstream :o
dans #include <sstream>


 
Oui c'est exactement ca merci beaucoup :)
 

Code :
  1. ostringstream errorMsg;
  2. errorMsg << "SQL Error - Origin:" << e.GetOrigin()
  3. << " Code:" << e.GetCode()
  4. << " SubCode:" << e.GetSubCode()
  5. << " Specific Code:" << e.GetSpecificCode();


 
Et errorMsg.str() en argument dans mes fonctions.
 
Merci encore!  :wahoo:

n°1329506
Taz
bisounours-codeur
Posté le 21-03-2006 à 14:48:46  profilanswer
 

/me préfère de loin boost::format

n°1329590
_darkalt3_
Proctopathe
Posté le 21-03-2006 à 15:45:08  profilanswer
 

+1 pour boost


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Solved] ERROR C2296: concatenation de chaines

 

Sujets relatifs
Pb avec Coppermine Gallery... Fatal ErrorParse error ... J'trouve pas
Langage adapté pour traiter des chaînes de caractèresError variable + cours sur les classes.
Parse error: j'y comprend rien du tout...[resolu]parse error :/
résolu Problème de concaténation de variableinternal error during packaging generation
[C/C++] - error: stray '\357' in program ??On error goto, toujours executé
Plus de sujets relatifs à : [Solved] ERROR C2296: concatenation de chaines


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR