Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.11.2008, 01:56

Float in const char

Hallo Leute, suche gerade verzweifelt nach einer Möglichkeit Float in const char umzuwandeln. Hab schon im Internet gesucht und überhaupt nix gefunden. Hoffe ihr könnt mir weiter helfen.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

2

16.11.2008, 08:18

Boost bietet dir dafür den lexical_cast oder du machst es über einen stringstream. Ich hab die genaue syntax nicht mehr im kopf aber grob sollte es so aussehen:

C-/C++-Quelltext

1
2
3
std::stringstream s; 
s << deinfloat; 
const char* deinstring = s.c_str();

DasBlub

Alter Hase

Beiträge: 802

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

3

16.11.2008, 17:30

du kannst auch sprintf() verwenden, dann kannst du jeden typ in char* umwandeln ;)

Anonymous

unregistriert

4

16.11.2008, 17:38

Das kann ich mit Streams auch, nur ich bin noch typsicher dabei und habe die möglichkeit den Stream für Klassen erweitern. sprintf kann nichts dergleichen.

5

16.11.2008, 17:48

Zitat von »"xardias"«

Boost bietet dir dafür den lexical_cast oder du machst es über einen stringstream. Ich hab die genaue syntax nicht mehr im kopf aber grob sollte es so aussehen:

C-/C++-Quelltext

1
2
3
std::stringstream s; 
s << deinfloat; 
const char* deinstring = s.c_str();


Quellcode

1
2
3
4
5
1>c:\users\uwe\documents\visual studio 2008\projects\sdl_game_001\sdl_game_001\main.cpp(139) : error C2297: '<<': Ungültig, da der rechte Operand vom Typ 'float' ist
1>c:\users\uwe\documents\visual studio 2008\projects\sdl_game_001\sdl_game_001\main.cpp(139) : warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
1>c:\users\uwe\documents\visual studio 2008\projects\sdl_game_001\sdl_game_001\main.cpp(140) : error C2228: Links von ".c_str" muss sich eine Klasse/Struktur/Union befinden.
1>        Typ ist 'int'
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.


Das passiert bei Kompilierung des Codes. Der String mag float anscheinent auch nicht.

6

16.11.2008, 17:52

#include <sstream>
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

7

16.11.2008, 18:00

Quellcode

1
2
3
4
5
6
7
1>c:\users\uwe\documents\visual studio 2008\projects\sdl_game_001\sdl_game_001\main.cpp(140) : error C2039: 'c_str': Ist kein Element von 'std::basic_stringstream<_Elem,_Traits,_Alloc>'
1>        with
1>        [
1>            _Elem=char,
1>            _Traits=std::char_traits<char>,
1>            _Alloc=std::allocator<char>
1>        ]


// Edit: Ah, man muss str(); anstatt c_str(); benutzen. Jetzt kommt aber folgender Fehler:

Quellcode

1
2
3
4
5
6
7
8
1>c:\users\uwe\documents\visual studio 2008\projects\sdl_game_001\sdl_game_001\main.cpp(140) : error C2440: 'Initialisierung': 'std::basic_string<_Elem,_Traits,_Ax>' kann nicht in 'const char *' konvertiert werden
1>        with
1>        [
1>            _Elem=char,
1>            _Traits=std::char_traits<char>,
1>            _Ax=std::allocator<char>
1>        ]
1>        Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

16.11.2008, 18:47

ok, es funktioniert, doch das Resultat ist keine float Zahl, sondern schreckliche Hyroglyphen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

10

16.11.2008, 18:49

Code zeigen.
Habe den Verdacht, dass du das Ergebnis noch benutzt, nachdem der Stream zerstört wurde.

Werbeanzeige