system geht nicht?
-
Ich habe mal wieder ein kleines großes Problem....
Ich habe ein programm welches einen rechner mit system(ping.str()) anpingen soll...
in der variable ping sieht so aus: ping ip
nur wenn ich das Programm kompilieren möchte dann kommt folgende fehlermeldung:
*c:\programme\microsoft visual studio\myprojects\ipsniffer\ipsniffer.cpp(44) : error C2664: 'system' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char ' nich
t moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
Fehler beim Ausführen von cl.exe.Muss ich irgendwelche speziellen includes setzen damit system funktioniert oder woran könnte es liegen das es nicht funktioniert?
-
#include <cstdlib> using namespace std; int main() { //... system(ping.c_str()); return 0; }MfG
GPC
-
Die Fehlermeldung sagt überhaupt nichts darüber aus, ob system funktioniert oder nicht, sondern, dass du versuchst, einen string zu übergeben, wo ein const char* erwartet wird. Einen Zeiger auf den Inhalt des Strings als nullterminiertes Array bekommst du mit c_str:
system(ping.str().c_str()); // ich geh mal davon aus, dass ping ein ostringstream ist?BTW zur Warnung: Das ist ein potentielles Sicherheitsloch, wenn du den String aus ungeprüften User-Eingaben zusammensetzt.
-
ok danke
wenn ich .c_str() noch mit anhänge dann funzt es