float in char umwandeln?
-
wie geht das? mit dieser funktion wird ja abgerundet:
char *itos(int i)
{
char *tmp = new char[10];
itoa(i,tmp,10);
return tmp;
}also mit itoa...wie krieg ich des denn am besten mit ner rundung auf eine stelle hinterm komma hin?
-
1. float steht nur im beitragstitel und sonst nirgends... oder willst du ernsthaft nen int auf eine stelle hinterm komma runden
2. in einer funktion allokierten speicher gibt man nicht zurück. das ist böööse, weil man nur zuschnell vergisst den speicher wieder aufzuräumen.
-
Hallo,
vielleicht hilft dir das weiter:
using namespace std; int main() { stringstream c; float a = 25454.547; c << a; cout << c.str() << endl; }
-
dankee
edit:
main.cpp D:\Programme\C++ files\MSDev98\MyProjects\charcounter\main.cpp(151) : error C2079: 'takein' verwendet undefiniertes class 'basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >' D:\Programme\C++ files\MSDev98\MyProjects\charcounter\main.cpp(152) : error C2296: '<<' : Ungültig, da der linke Operand vom Typ 'float' ist D:\Programme\C++ files\MSDev98\MyProjects\charcounter\main.cpp(152) : error C2297: '<<' : Ungültig, da der rechte Operand vom Typ 'float' ist D:\Programme\C++ files\MSDev98\MyProjects\charcounter\main.cpp(153) : error C2664: 'FindAndReplace' : Konvertierung des Parameters 3 von 'int' in 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' nicht moeglic h Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Ueberladungsaufloesung des Konstruktors ist mehrdeutig Fehler beim Ausführen von cl.exe.
-
Hi!
Du musst folgende Header includieren:
#include <iostream> #include <sstream> #include <string>
Aber darauf kann man auch selbst kommen. Zumal es dieses Thema in der FAQ gibt.
Code-Hacker
-
sry
edit wie kann ich den stringstream denn leeren?
-
str mit leerem String aufrufen, meistens wird clear auch benötigt, um die Fehlerbits zu löschen.
-
stringstream c; float a = 25454.547; c << a; cout << c.str() << endl; // Das hängt davon ab, was du mit richtig genau meinst. Wenn es dein Ziel war // zwischendurch mal die Fehlerbits des stringstreams zu löschen, dann so: c.clear(); // Willst du hingegen den *Inhalt* des stringstreams zurücksetzen: c.str("");
schau da:
http://www.cplusplus.com/ref/iostream/ios/clear.html
[url]http://www.cplusplus.com/ref/iostream/stringstream/str.html
[/url]cu