Die System-Anweisung geht nicht...
-
Hi, ich will eine bestimmte EXE ausführen und habe dazu diesen Code geschrieben:
#include <iostream> #include <string> #include <windows.h> using namespace std; int main(void) { cout<<"Bitte geben Sie den Pfad zur Datei an, die ausgefuehrt werden soll:\n"; string pfad; cin>>pfad; cout<<pfad; system(pfad); return 0; }Wieso funzt das nicht?

-
Weil du die Dokumentation zu std::system() nicht gelesen hast.
Außerdem gehört das ins C++-Subforum.
-
Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Benutz mal popen().
http://msdn.microsoft.com/en-us/library/96ayss4b(VS.71).aspx
rya.
-
Ein std::string ist nicht dasselbe wie ein const char* (denn den verlangt system).
Beim nächsten Mal bitte eine Fehlerbeschreibung gleich mit posten!
-
Um einen
std::stringin einenconst char*zu konvertieren, kannst du die Funktionstd::string::c_str()benutzen.
-
Ich hab das Problem gelöst

#include <iostream> #include <string> #include <cstring> #include <windows.h> using namespace std; int main() { cout<<"Bitte geben Sie den Pfad zur Datei an, die ausgefuehrt werden soll:\n"; string pfad; cin>>pfad; cout<<pfad; char * cstr, *p; cstr = new char [pfad.size()+1]; strcpy (cstr, pfad.c_str()); // cstr now contains a c-string copy of pfad system(cstr); return 0; }
-
Warum nicht einfach:
int main() { cout<<"Bitte geben Sie den Pfad zur Datei an, die ausgefuehrt werden soll:\n"; string pfad; cin>>pfad; cout<<pfad; system(pfad.c_str()); return 0; }Im übrigen hast du bei dir auch noch vergessen den Speicher wieder freizugeben..
-
char * cstr, *p;Sowas würde ich grundsätzlich nie machen, vor allem nicht, wenn man unterschiedliche Abstände setzt. Besser einfache Deklarationen.
Aber was bringt das
püberhaupt, du greifst ja nirgends darauf zu?