Je suis un nouveaub complet à C ++, mais pas à Java, C #, JavaScript, VB. Je travaille avec une application de console C ++ par défaut de Visual Studio 2010.
En essayant de faire un imprimeur, je reçois des caractères étranges. PAS la même chose à chaque fois que cela me dit qu'ils peuvent regarder différents emplacement de mémoire chaque fois que je l'exécute. P>
code: p>
6 Réponses :
Utiliser printf ("bonjour% s", p.first_name.c_str ()); code>! p>
printf("Hello %s", p.first_name.c_str()); However, why aren't you using iostream, if you are using c++?
+1 parce que je suis un tel nouveaub. Briser mes livres de C ++ à nouveau lorsque nous parlons.
Parce que iOSTREAM est très très très très très bien lent que celui de l'impression (). Fait beaucoup de choses que vous n'avez pas besoin. Google!
Le problème est que Un moyen de réparer ceci est d'écrire p> Cependant, étant donné que vous codez en C ++, il est judicieux d'utiliser des flux d'E / S de préférence à printf code> /
scanaf code> ne sont pas TypeAfe. Vous fournissez un objet
std :: string code> objet où
printf code> attend un
const char * code>.
printf code> /
/
scanf code>: p>
Merci +1. Alors, y a-t-il un formatage équivalent à Printf en C ++?
Vous ne pouvez pas passer c ++ Étant donné que vous utilisez c ++, vous devez utiliser vraiment std :: chaîne code> objets dans
printf code>.
printf code> ne comprend que les types primitifs tels que
int code>,
float code> et
char * code>. Votre compilateur devrait em> vous donner un avertissement là-bas; Si ce n'est pas le cas, allumez votre niveau d'avertissement. P>
std :: COUT code> pour la sortie de texte, et cela comprend
std :: string code> objets. Si vous devez vraiment utiliser
printf code> pour une raison quelconque, convertissez la version
std :: string code> sur un
const char * code> en appelant le
c_str () code> méthode sur elle. P>
Convertissez la chaîne en c-string. Également, puisque vous utilisez C ++, vous devez en apprendre davantage sur COUT par opposition à PrintF! P> P>
+1 pour répondre à la question et ensuite le pousser dans la bonne direction.
printf ("% s") code> Accepte une chaîne de style C qui est terminée par un
'\ 0' code>. Cependant, l'objet code> string code> est un objet C ++ qui est différent d'une chaîne de style C. Vous devez utiliser
std :: cout code> qui est surchargé pour gérer
tringle code> directement, comme indiqué ci-dessous.
std::cout << p.first_name;
OK, vous avez donc démontré comment sortir le prénom. Qu'en est-il du mot "bonjour"?
@JIM, pour "Bonjour" Op déjà le faisait déjà droit avec Printf. Vous devriez essayer d'identité la partie principale de la question, ignorant les autres parties triviales. Droit?
Utilisez
COUT code> en C ++. Pour printf avec% s, vous auriez besoin de
p.first_name.c_str () code> mais n'utilise pas
printf code> in c ++.