String mit printf ausgeben
-
Weiß jemand wie man mit printf einen String ausgeben kann ?
wenn ich folgendes mache :
string a = "Hallo"; printf("%s",a);
Dann kommt dabei nur eine Speicheradresse oder irgend ein komische Zeichen dabei raus. Geht das mit dem printf oder muss man bei der String Klasse cout verwenden.
-
[ Was ist string, was ist cout? In diesem Forum gehts um ANSI-C. C++ ist nebenan. ]
printf erwartet bei "%s" einen Zeiger auf char. string ist aber weder ein Zeiger auf char, noch gibt es eine automatische Umwandlung in diesen Typ. Wolltest also in C++ einen string mit printf ausgeben, müsstest du
printf("%s", s.c_str());
schreiben.
cout ist übrigens keine Klasse, sondern ein Objekt des Typs iostream.
-
In C-Konvention sehe dein Stück Code wie folgt aus
char a[] = {"Hallo"}; printf("%s",a);
-
hallo!soviel ich weiß kannst du es mit dem aufruf eines string.h bewältigen...
also so.
#include <stdio.h>
#include <string.h>int main(){
string hallo ="hallo";
printf("%s\n",hallo);
return 0;
}hoffe das klapt so:-)
-
webbuster schrieb:
hallo!soviel ich weiß kannst du es mit dem aufruf eines string.h bewältigen...
Nö, falsch. Siehe Bashars Post.
-
Hi, toll das mit string.c_str() klappt, weiss jemand obs auch sowas für map in Verbidnung mit c gibt:
map<int, string> StringMap; StringMap[0] = "test"; printf("%s", StringMap[0]); //funktioniert nicht
-
Welchen Typ hat denn stringMap[0] - denk darueber nach, dann kennst du die Loesung.
-
Shade Of Mine schrieb:
Welchen Typ hat denn stringMap[0] - denk darueber nach, dann kennst du die Loesung.
danke für den Tip, jetzt klappts, iteratoren rocken
-
Shade, wieso verschiebst du das nicht?
-
Bashar schrieb:
Shade, wieso verschiebst du das nicht?
sorry - ich hols jetzt nach.