Goed, waarschijnlijk zie ik iets heel simpels over het hoofd, maar ik kom er niet echt uit. Ik ben bezig met een soort van IRC-client onder linux. De client haalt zijn data van de server binnen als string. Nu wil ik die data gaan vergelijken om te kijken wat voor soort commando het is. Bijv, mijn IRC client krijgt 'PING' binnen en moet dan dus een 'PONG' terug gaan geven. Maar bij het vergelijken gaat het fout...
Stukje code:
Bij die strcmp() gaat het dus fout... de error die ik krijg is:
Ik snap dus niet waarom strcmp() niet werkt... Moet strcmp perse een char* als argumenten hebben?
Stukje code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| try
{
ClientSocket client_socket (host, port);
string reply;
try
{
client_socket >> reply;
while (true)
{
cout << reply;
client_socket >> reply;
string ping = "PING";
if (strcmp(reply, ping))
cout << "There was a ping!\n";
}
}
catch (SocketException&) {}
}
catch (SocketException& e)
{
cout << "Exception was caught: " << e.description() << "\n";
} |
Bij die strcmp() gaat het dus fout... de error die ik krijg is:
code:
1
2
| cannot convert 'std::string' to 'const char*' for argument '1' to 'int strcmp(const char*, const char*)' |
Ik snap dus niet waarom strcmp() niet werkt... Moet strcmp perse een char* als argumenten hebben?
[ Voor 9% gewijzigd door curry684 op 16-10-2003 10:25 ]