PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit strtok()



gORDon_vdLg
11.04.2010, 06:56
Ich habe vor einen Server zu programmieren der sich während er läuft durch gewisse Kommandos steuern lassen soll... Die Kommandos versuche ich durch strtok() auseinander zu dröseln, wobei gesagt werden sollte das ich eher wenig mit c++ arbeite. Das Problem ist nun das die if zwar aufgeführt wird, aber wenn ich dort testweise wie im Code zu sehen das Acommand[2] ausgebe "exit" angezeigt wird auch wenn durch das cin z.B. "exit asd mau bla" eingegeben wurde.


#include <windows.h>
#include <winsock2.h>
#include <iostream>
#include <sqlite3.h>
#include <string>

using namespace std;

DWORD WINAPI PlayerServerThread(int lpParameter);

DWORD WINAPI PlayerServerThread(int lpParameter) {
//hier steht n bisschen nicht relevantes drinne, n kleiner servercode halt^^
}

int main() {
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PlayerServerThread, NULL, 0, NULL);

string command;
string Acommand[2];
char *buffer;
int i;
while (1) {
cin >> command;

i = 0;
buffer = strtok((char*)command.c_str(), " ");
while ((buffer != NULL) && (i <= 2)) {
Acommand[i].assign(buffer);
buffer = strtok(NULL, " ");
i++;
}

if (Acommand[0].compare("exit") == 0) {
cout << Acommand[2];
return 0;
}
}

return 0;
}


compiled hab ich das ganze mit cygwin falls das weiter hilft

GregorSamsa
11.04.2010, 10:38
Schau dir mal meinen IRC-Bot an, da ist das auch so geregelt...

gORDon_vdLg
11.04.2010, 14:52
und den find ich wo?^^

GregorSamsa
11.04.2010, 15:20
Guck mal hier im Board bei den C/C++ Sourcecodes... ;)