Int in String umwandeln
-
Also...
Mir ist bewusst,dass zu diesem Thema schon extrem viele Einträge vorhanden sind,aber MIR hat keiner dieser Einträge weitergeholfen...ich habe eigentlich nur 1 Problem: Ich habe zwar eine "Formel" dafür,weis allerdings nicht,was ich für einen Teil dieser "Formel" einsetzen soll, hier die "Formel":
"Beliebiger string" = itoa(int_Val, char*_DstBuf, int_Radix);
-int_Val hab ich mir so erklärt,dass dort der zu konvertierende Integer eingefügt werden soll
-int_Radix habe ich erfahren,dass der "Systemwert" eingefügt werden soll,was bei einem normalen 10-ner System die 10 wäre
-char*_DstBuf hab ich keine Ahnung,was es Bedeutet
Sollte jemand einen Fehler finden, bzw. wissen,was "char*_DstBuf" bedeutet, bitte Antworten...
(ich benutze Visual C++ 2008 Express)
Danke schon ma im voraus
-
#include <iostream> using namespace std; int main() { int n = 5; // Dein Integer char buffer[5]; // Je nachdem wie viele Stellen halt deine Zahl hat, anpassen itoa(n, buffer, 10); // Und das wars dann auch schon cout << buffer << endl; return 0; }
-
int iZahl = 100; CString sStr; sStr.Format(_T("%d"), iZahl);
-
Danke für die schnelle antwort, aber ich habe gleich das nächste Problem:
Undzwar will ich das ganze somachen,dass die Zahl dann in einem Text-Feld in einem Form ausgegeben werden soll, die ganze zeit ging ich davon aus,dass das ganze so gehne sollte,aber jetzt kommt folgende fehlermeldung:...\documents\visual studio 2008\projects\rechner 2\rechner 2\Form1.h(299) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)': Konvertierung des Parameters 1 von 'char *' in 'System::String ^' nicht möglich
mein script ausschnitt,mitdem das ganze zusammenhängt sieht so aus:
char buffer[4];
int a = int(numericUpDown1->Value);
textBox1->Text = itoa(a,buffer,10);wenn ich folgendes schreibe gibt er mir eine TExtausgabe,was mir allerdings nicht hilft,da ich ja eine variable ausgebn will:
textBox1->Text = "Hallo";
Sollte jemand wissen,was ich falsch mache bitte melde, Danke
-
Bei der lösung von Machine kommt der fehler,dass er "_T" nicht kennt(soll ich noch irgendwas einbinden,oder geht der befehl bei c++ nicht?
Danke
-
denn lass es einfach weg. ich weiß nicht, ob es die expressversion kennt.
-
_T("") ist für Unicode. Wenn du dein Projekt ohne Unicode erstellt hast, dann sollte "" reichen
-
Uruk-h4j schrieb:
_T("") ist für Unicode. Wenn du dein Projekt ohne Unicode erstellt hast, dann sollte "" reichen
für unicode wäre es afaik L"".. _T("") nutzt man, wenn man auf multibyte charset compiliert. oder irre ich mich da jetzt?!
-
ok,danke nochma,aber jetzt beschwerd er sich,dass CString ein "nichtdeklarierter Bezeichner" ist...
P.S. Danke an alle
-
L für unicode,
aber _T() oder auch TEXT() wandelt das um wenn man multibyte oder unicode verwendet. das heisst mit beiden letzteren sollte man theoretisch das projekt immer umschalten können ohne das es probleme gibt.ob das sinn macht oder nicht .. einmal unicode immer unicode.
-
Visual C++ schrieb:
ok,danke nochma,aber jetzt beschwerd er sich,dass CString ein "nichtdeklarierter Bezeichner" ist...
P.S. Danke an alle
Visual c++ 2008 Express hat doch kein MFC, das kann zwar mit PSDK nachgeliefert werden aber MFC mit der Express ist nicht ohne. Außerdem sieht das nach .Net aus was du da machst (ist mal so geraten wegen Forms dings bums)
schau mal System::Convert::ToString
-
Visual C++ schrieb:
...\documents\visual studio 2008\projects\rechner 2\rechner 2\Form1.h(299) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)': Konvertierung des Parameters 1 von 'char *' in 'System::String ^' nicht möglich
Du bist hier wohl in der falschen Sektion (->C++/CLI)
Da sollte es so gehen
int dieZahl = 99; textBox1->Text = dieZahl.ToString();
Gruss
foodax