System-Befehl... : (
-
Hi !
Ich muss mit Hilfe des System-Befehls ein Programm schreiben das auf eine ISQL-Datenbank zugreift... nun habe ich jedoch ein banales Problem mit dem System-, bzw Cin-Befehl. Es soll ein Befehl automatisch generiert werden, nachdem nur ein File eingegeben wurde...(ich will immer nur das File eingeben lassen, damit es weniger Eingaben gibt) etwa so:string file; string command; command = "form "; cin >> file; // befehl = "form beispiel" system(befehl)
Nun will ich diese beiden Strings in einen Befehl bekommen, aber irgendwas läuft da immer was falsch
!
Bei den meisten Versuche die ich unternommen habe, wird das Leerzeichen als Stringende angesehen und dann der System-Befehl nur mit "form" ausgeführt. : (
Würde mich freuen wenn mir da jemand weiterhelfen könnte...
-
http://cplus.kompf.de/artikel/strings.html
command = "form "; command += file;
-
*ggg*
da hätte ich aber auch selbst drauf kommen können! Ist ja schon fast peinlich...
Naja, vielen Dank!
-
string file = "ls -"; string command; cin >> command; file += command; system(file);
error: cannot convert ` std::string' to `const char*' for argument `1' to `int system(const char*)'
der system befehl nimmt doch immer nur systembefehle direkt entgegen (" ") oder const char* ( ) <---- ohne anführungsstriche.
string operationen lässt der nicht zu.
probiert mit dev-cpp (mingw) und gcc.
wie umgeht man dann sowas?
hab das schon mal versucht strings zusammen zu fügen, bekomme aber immer diese fehlermeldung.
-
system(file.c_str());
[edit]
natürlich file nicht command
-
Um von einem String const char* zu erhalten reicht folgendes aus:
std::string meinString = "IrgendeinText"; const char* meinChar = meinString.c_str();
Auf dein Code bezogen:
system(file.c_str());
-
das funktioniert ja super, dankeeee
jetzt kann ich endlich mal mein prog erweitern mit system(alles mögliche sowieso und so weiter)