PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : System() mit Variable ausführen



xmarvel
31-08-2002, 17:25
hi

Ich möchte ein Programm mit einer Variable ausführen.
Ich habe erstmal mit int var; die Variable deklariert. anschließend den Wert festgelegt
mit
var = "test";
nun wollte ich eigentlich mit:
system ("wget " + var);
ausführen.
Hab schon mehrere Kombinationen ausprobiert nur immer wieder kommen Fehlermeldungen.

MFG
xmarvel

Trillian
31-08-2002, 20:42
Ein "int" kann keinen String ("test") speichern :D

Generell musst du so vorgehen, dass du eine "char" Variable nimmst, und da den Text reinschreibst, den du anschliessend an system() übergibst.

Beispiel:



char wget[] = "wget http://www.google.de";

system(wget);

xmarvel
31-08-2002, 22:25
hat aber irgendwie nicht mein Problem gelöst !
Da wget ja zur URL hinzugefügt werden soll.
wenn ich
char var = "wget " + URL; //URL ist eine Variable
system(var);
Kommt die Fehlermeldung vom Compiler das "+" kein gültiger Operator wäre ? Sowie "&"
Wie kann ich jetzt die beiden zusammenfügen sodass zum Schluss eine Variable ergibt? Ich hoffe ihr wisst was ich meine.
Ach mein Programm ist in C geschrieben nicht in C++.

MFG
xmarvel

nobody0
01-09-2002, 00:54
Das mit dem + geht nicht unter C; dafür braucht man eine der String-Operationen, die man im entspr. Kapitel eines C-Buchs findet.
Man kann es z. B. so machen:

char cline[128]={'\0'};
char line[128]="http://www.google.de";
sprintf(cline,"wget %s\n",line);

xmarvel
04-09-2002, 13:40
hmm... irgendwie klappt das beim system() nicht ? Die URL ist nicht statisch d.h. sie kann sich dauernd verändern.
Hoffe ich komme dort weiter ist ziemlich wichtig für mein Programm was ich schreiben will. Ist jetzt die einzigste Sache die noch nicht einwandfrei funktioniert :(

anda_skoa
04-09-2002, 13:43
Das geht schon so, wie nobody es beschrieben hat.

Du legst eine Variable für die Commandline and, in nobodys Beispiel cline.

Dort wird dan mittels sprintf dier richtige Aufruf bei Bedarf reinkompiert.

line ist in dem Fall die URL Variable.

Ciao,
_

nobody0
04-09-2002, 14:20
Ja, ausgeführt wird das mit:

system(cline);

So mache ich das in meinen Programmen, um die Befehlszeile erst zusammenzusetzen und dann ausführen zu lassen, um es übersichtlich zu haben ;)

xmarvel
04-09-2002, 15:41
axo wird das gemacht hatte ein Verständnis Problem. Aber jetzt Funktioniert es :)
thx an euch. (Mann muss unbedingt wieder programmieren mein leztes Programm war schon ewig her :( )