Speicheradresse zu String
-
Hacker schrieb:
Was zum Teufel ist das für ein Scheiß?
Hab ich mir genau in diesem Moment auch gedacht.

-
-
SeppJ schrieb:
http://en.cppreference.com/w/cpp/string/basic_string/to_string
Das unterstützt mein Compiler nicht. Außerdem ist
lexical_castschneller, wetten?
-
1. Dann nimm nen besseren Compiler.
2. Bezweifle ich, lexical_cast ist langsam wie eingeschlafene Füße, dank dem Designfetisch der Boost Devs.
-
Ethon schrieb:
1. Dann nimm nen besseren Compiler.
Ich hab den GCC.

Es gibt mit Abstand nichts besseres.
Aber wo gibt es den MinGW mit dem neuesten GCC 4.7 (32-Bit, wenn möglich) zum download? Ich hab 4.6.1 :gespannt:
-
Natürlich unterstützt der GCC 4.6 to_string . Sicher dass es nicht geht? <string> eingebunden?
-
#include <iostream> #include <string> int main() { std::string s = std::to_string(5); std::cout << s; }GCC 4.6.2 und auch 4.7 schrieb:
Fehler: »to_string« ist kein Element von »std«
Also das versteh' ich jetzt echt nicht.
Auszug aus meiner include/c++/bits/basic_string.h:inline string to_string(int __val) { return __gnu_cxx::__to_xstring<string>(&std::vsnprintf, 4 * sizeof(int), "%d", __val); }Und sogar das hier gibt dieselbe Fehlermeldung, auch mit -std=c++0x usw.
#include <bits/basic_string.h>Keine Ahnung was da los ist..
-
Da is nix los. Da sind einfach vordefinierte Makros am Werk... ich guck gleich mal welche das sind...
-
Ethon, das ist unfair! Wieso darfst du
to_stringbenutzen und ich nicht?
-
Ich fühl mich langsam verarscht, ich konnte eben auch nicht
std::string::pop_back()auf meinem 4.7 nutzen. Hab mir eben hier http://nuwen.net/mingw.html das Neueste gedownloadet.pop_back()geht jetzt, aberto_stringimmer noch nicht
Naja, ich werd wohl noch länger warten müssen..
-
Das liegt daran, dass to_string beim MinGW nicht dabei ist, warum auch immer. :p
-
Naja, so einfach die Frage auch war, hab ich in den ganzen 19 Antworten keine Lösung gefunden))))
Wie kann ich denn nun eine Speicheradresse in einen String bzw. konstante Zeichenkette schreiben?
-
RussianTux schrieb:
Naja, so einfach die Frage auch war, hab ich in den ganzen 19 Antworten keine Lösung gefunden))))
Wie kann ich denn nun eine Speicheradresse in einen String bzw. konstante Zeichenkette schreiben?
Hä? Das wurde jetzt mitunter mehrmals vorgemacht!
-
314159265358979 schrieb:
Das liegt daran, dass to_string beim MinGW nicht dabei ist, warum auch immer. :p
Tja, werd deswegen wohl oder übel auf Linux umsteigen müssen fürs Entwickeln....

-
Oder - noch besser - OS X.
-
RussianTux schrieb:
Wie kann ich denn nun eine Speicheradresse in einen String bzw. konstante Zeichenkette schreiben?
Um nochmal die Antworten zu ordnen: Zwei Wege führen zum Ziel: Zum einen der
ostream& operator<< (const void* val);(das geht aber nicht bei Funktionszeigern u.Ä.), zum anderen die Ausgabe eines Integers mit Umweg über intptr_t (ab C++11, das sollte für alle Zeigertpyen gehen, du muss aber vorher noch Hex-Ausgabe mit std::hex aktivieren). Das schreibt dir die gewünschten Zeichen Zeichen in einen Stream. Wenn du als Stream einen Stringstream nimmst, dann kannst du das Ergebnis hinterher einfach in einen String umwandeln.
Das kann man vielleicht auch irgendwie als Einzeiler formulieren, unsere fruchtlosen Versuche findest du in diesem Thread verteilt. Drei Zeilen reichen aber mit Sicherheit.
-
SeppJ schrieb:
RussianTux schrieb:
Wie kann ich denn nun eine Speicheradresse in einen String bzw. konstante Zeichenkette schreiben?
Um nochmal die Antworten zu ordnen: Zwei Wege führen zum Ziel: Zum einen der
ostream& operator<< (const void* val);(das geht aber nicht bei Funktionszeigern u.Ä.), zum anderen die Ausgabe eines Integers mit Umweg über intptr_t (ab C++11, das sollte für alle Zeigertpyen gehen, du muss aber vorher noch Hex-Ausgabe mit std::hex aktivieren). Das schreibt dir die gewünschten Zeichen Zeichen in einen Stream. Wenn du als Stream einen Stringstream nimmst, dann kannst du das Ergebnis hinterher einfach in einen String umwandeln.
Das kann man vielleicht auch irgendwie als Einzeiler formulieren, unsere fruchtlosen Versuche findest du in diesem Thread verteilt. Drei Zeilen reichen aber mit Sicherheit.Wunderbare Antwort, dankeschön!

-
mit -std=c++0x kompiliert?
Edit: hat sich ja eh schon erledigt
@Hacker: steig auf ein linux os um, da hast du solche probleme nicht
-
vario-500 schrieb:
mit -std=c++0x kompiliert?
Edit: hat sich ja eh schon erledigt
@Hacker: steig auf ein linux os um, da hast du solche probleme nicht
Ja, aber das ist immer so merkwürdig mit der Taskleiste und so.. und das einrichten vom Netzwerk hab ich auch noch nie hinbekommen, puhhh, wird 'n langer Tag, schätz' ich ^^
-
Zum Ausprobieren kannst du ja einfach eben Virtualbox ( http://www.chip.de/downloads/VirtualBox_23814448.html ) runterladen und installieren und dann mal ein Linux mit nem schon fertigen Image dafür starten. Z.B. mit dem hier: http://virtualboxes.org/images/ubuntu/#ubuntu1204
Sollte (mal abgesehen von der Download-Zeit) in ein paar Minuten möglich sein.