begin process at 2012 05 30 07:58:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

type string dans Visual C++


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

type string dans Visual C++

lundi 21 juin 2010 à 16:51:18 | type string dans Visual C++

fadoch

Bonjour à tous,
je travaille avec Visual C++.
je souhaite savoir quelle est la différence entre le type "string" et le type "CString". et pourquoi

Code C/C++ :
MessageBox(message);

ne fonctionne pas si "message" est de type "string"?
et

Code C/C++ :
std::getline(fichier, message);

ne fonctionne pas avec le type "CString"?

et comment je fait pour exécuter ces deux commandes sur la même chaine de caractère?


Code C/C++ :
std::getline(fichier, message);
MessageBox(message);

je vous remercie d'avance.
lundi 21 juin 2010 à 18:44:49 | Re : type string dans Visual C++

Julien39

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Cstring est une classe MFC, ce qui signifie qu'elle ne fonctionne qu'avec windows

std::string est la classe c++ standard qui fonctionne toujours, c'est celle que je te conseille d'utiliser

std::getline(fichier, message); ne peut pas fonctionner avec un type CString, le type n'est pas reconnu.

Pour t'en sortir, tu peux convertir CString en string et inversement
Code C/C++ :
//CString -> std::string
CString cs("Hello");
std::string s((LPCTSTR)cs);
//std::string -> CString
std::string s("Hello");
CString cs(s.c_str());


Mais bon, il vaut quand même mieux choisir un type et utiliser les fonctions qui vont avec.
mardi 22 juin 2010 à 09:11:38 | Re : type string dans Visual C++

louis14

Bonjour,
effectivement ce manque de compatibilité est gênant. Ppour ma part j'ai opté pour CString et j'utilise la fonction GetBuffer afin d'obtenir un car* et ReleaseBuffer. En mixant les types j'ai eu des problèmes. Le conseil donné précedament est le bon: choisir un type et s'y tenir.
Pour getline j'utilise le Getbuffer auparavant
Bon codage

louis
mardi 22 juin 2010 à 09:55:31 | Re : type string dans Visual C++

fadoch

merci beaucoup pour ces réponses. j'ai utilisé les conversions si-dessus et ça marche trés bien.
jeudi 20 janvier 2011 à 11:23:33 | Re : type string dans Visual C++

aslibaub

Bonjour,
J'essaye d'utiliser Markup pour avoir un accès aux fichiers xml. Donc je suis obligée de passer par Cstring. Je travaille sur Visual Studio 2008.
Pour déjà comprendre comment ça marche, j'essaye de créer une variable CString avec un string simple et de l'écrire dans un fichier.
Voici mon code :
CString strSN;
strSN.Format(TEXT("%s"),"asli");
std::string s((LPCTSTR)strSN);
// écriture de s dans le fichier m_ofsStream
m_ofsStream << s << endl;

J'ai le message d'erreur suivant :
.\src\Log.cpp(49) : error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::allocator<_Ty> &)' : impossible de convertir le paramètre 1 de 'LPCTSTR' en 'const std::allocator<_Ty> &'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>,
1> _Ty=char
1> ]
1> and
1> [
1> _Ty=char
1> ]
1> Raison : impossible de convertir de 'LPCTSTR' en 'const std::allocator<_Ty>'
1> with
1> [
1> _Ty=char
1> ]
1> Aucun constructeur n'a pu prendre le type de source, ou la résolution de la surcharge du constructeur était ambiguë
1>.\src\Log.cpp(50) : error C2679: '<<' 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)
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(653): peut être 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(700): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(738): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(785): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(909): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(916): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(923): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(930): ou 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(1302): ou 'CArchive &operator <<(CArchive &,ATL::CTimeSpan)'
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(1309): ou 'CArchive &operator <<(CArchive &,ATL::CTime)'
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\afx.h(1519): ou 'CArchive &operator <<(CArchive &,const CObject *)'
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(170): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(176): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(183): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(190): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(210): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(243): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(263): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 int)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(288): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned int)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(308): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(328): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned long)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(349): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(369): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(390): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(float)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(410): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(430): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(450): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\ostream(470): ou 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> lors de la tentative de mise en correspondance de la liste des arguments '(std::ofstream, std::string)'




Je n'arrive pas à m'en sortir depuis 2 jours, alors si quelqu'un peut m'aider, je serai ravie.
Merci.


Cette discussion est classée dans : message, code, visual, string, type


Répondre à ce message

Sujets en rapport avec ce message

afficher un type string [ par GIRAFE ENRHUMEE ] Dans Visual C++, on m'affiche l'erreur que les flots >) ne sont pas surdéfinis pour recevoir une opérande droite de type string.Dans Dev C++, je n'ai Conversion str en char [ par bthivent ] Bonjour !J'aimerai en faite faire une message box : MessageBox(NULL, message, "Connexion", MB_YESNO) avec dedans une message spéciale...je sais que ma Un array de string dans le heap ( vaut mieux lire ) [ par Gabi ] Voila, pour les besoins de mon programme je veux faire un array, d'array de char ( donc de string ) déclarées dans le heap. Voilà donc le bout de code Le C++, c'est quoi ? [ par lebarn ] Bonjour, Je suis un Visual Basic Man et j'aimerais passer au C++ mais j'aimerais d'abord savoir quelques informations avant de m'engager : - Lors de l dim as [ par niketou ] Bonjour a tous,j'ai ceci en vb :Private Type untype i as long j as int k as intl as string.....End Type.....Public Function Get(Name As Stri Please help! conversion code visual en Devc++ [ par TheMaster ] Bonjour,j'ai un probleme:je convertis mes sources faites avec visual pour les compiler avec devc++. J'ai réussi mais j'ai tt de meme un probleme:qd je Focus Visual C++ 6.0 [ par Steph115 ] Salut a tous,J'aimerais savoir si qqun sait comment faire pour obtenir le focus j'ai un HWND console; ou console represente ma fenetre et je lui fait codage c++ d'un algo String to int [ par thomas59553 ] bonjour j'ai un algo pour convertir une chaine de caracteres en type entierdebutparametres : Ch : type chaine /entree/ variables : c , n Type de variable inconnu [ par LordBob ] Bonjour a tous,voila je regarder un code est je suis tomber sur un type de variable que je ne connaissais pas, j'espère que vous pourrez m'aider !!!HI petite question sur les message [ par LordBob ] bonjour a tous,voila mon code est structuré comme ca:BOOL CALLBACK Dialog(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){switch(msg){case WM_INI


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 4,056 sec (4)

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