Konvertierung String to Integer
-
Hallo, ich schaffe es nicht meinen String in Integer zu verwandeln:
#define max 255 char *buffer = new char [max]; SendMessage (hwndEdit2, WM_GETTEXT, max, (LPARAM) buffer); istringstream buffer2(buffer); int some_int; buffer2 >> some_int; MessageBox(hwnd,buffer, "bla", MB_OK);buffer ist der Text im Edit-Feld,
buffer2 ist halt derselbe, nur dass das dieser ein String ist und in ein Integer verwandelt werden soll.Folgendefehlermeldungen
main.cpp:132: error: jump to case label
main.cpp:121: error: crosses initialization ofstd::istringstream buffer2' main.cpp:132: warning: destructor needed forbuffer2'
main.cpp:132: warning: where case label appears here
main.cpp:132: warning: (enclose actions of previous case statements requiring destructors in their own scope.)
main.cpp:149:2: warning: no newline at end of file
Process terminated with status 1 (0 minutes, 2 seconds)
2 errors, 4 warningskann mir jemand helfen? wäre echt nett..
dankeschön
viele grüße
-
Wenn der Code aus einem switch-case stammt, dann verpass ihm bitte einen Block:
switch( /* ... */ ) { case 1: { /* dein code */ break; } }Dein compiler schrieb:
main.cpp:149:2: warning: no newline at end of file
mein.cpp öffnen, strg+end, return.
greetz, Swordfish
-
ja stimmt, danke für die schnelle Antwort

weiteres Problem, wenn der User nun allerdings ein Text eingibt, statt eines Integers, stürtzt das Programm ab:
istringstream buffer2(buffer); int some_int; buffer2 >> some_int; Sleep(some_int*1000);
-
Solche Fehler mußt du natürlich auch abfangen anstatt sie zu ignorieren:
istringstream buffer2(buffer); int some_int; buffer2 >> some_int; if(!buffer) { MessageBox(0,"Falsche Eingabe","Sie müssen schon eine Zahl eingeben",MB_OK); return; } Sleep(some_int*1000);
-
Wenn es eine normale Editbox ist, dann gibt es ein Style der festlegt das nur Nummern eingegeben werden dürfen. Ich glaube das war ES_NUMBER oder so musst mal schauen.
schirrmie
-
CStoll schrieb:
Solche Fehler mußt du natürlich auch abfangen anstatt sie zu
deshalb frage ich ja, vielen lieben Dank, klappt super.
Danke euch beiden.