Zum Inhalt springen

Verhalten vom Befehl "system"


Tachyoon

Empfohlene Beiträge

Hallo Leute.

Was ich versuche:

Es soll aus einem C++ Programm über eine Applikation eine Grafik-Datei geöffnet werden, die in einem bestimmten Verzeichnis liegen können soll. Der User soll nur den Namen der Datei eingeben, der Pfad soll vom Programm hinzugefügt werden. Danach soll die Applikation gestartet und das betreffende Dokument angezeigt werden. Das Starten der Applikation funxt schon automatisch, wenn ich nur den Dateinamen der zu öffnenden Datei angebe.

Mein Problem:

Ich muß den Pfad manuell hinzufügen über die Abfrage nach dem Dateinamen innerhalb des Programmes: Abfrage: cin << aufruf ; ( = "d:\test-tif\test1.tif")

Alles, was ich vom Programm selber an Pfad hinzugebe (Konstanten und Einsetzen von Werten in Variablen) wird einfach ignoriert:

aufruf="c:\verzeichnis\name.tif"

führt zu einem glatten Durchlauf des Programmes ohne Ausführung der Applikation bzw. Öffnen der betreffenden Datei.

Wenn ich jedoch nur angebe:

aufruf="name.tif"

wird ein Dokument, das sich im Projektverzeichnis befindet, geöffnet.

Insgesamt wird also nur der Pfad ignoriert.

:mad:

Die problematische Zeile:

status = system(aufruf);

Zusatzinfo zur Zeile:

int status;

char aufruf[128];

status=0;

cin << aufruf // Hier wird der Name bzw. Name + Pfad eingegeben bzw. hinzugefügt

Bin übrigens ein C/C++ Anfänger, kann gut sein, daß es was dämliches ist. Compilieren läßt es sich jedoch ohne Fehler und Warnungen.

Danke für Eure Antworten! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Du musst an system() exakt die Zeichenkette uebergeben, die Du auch in die Shell eintippen und mit <cr> bestaetigen wuerdest. Voraussetzung ist, dass ueber die Shell ueberhaupt moeglich ist, die Application zu starten UND eine Datei zu launchen.

Noch was: In der Zeichenkette erzeugst Du mit "\t" das ASCII-Zeichen fuer einen Tabulator, weil '\' eine sog. Escape-Sequenz ist und nicht etwa das ASCII-Zeichen fuer Backslash.

Uli

[ 15. Juni 2001: Beitrag editiert von: EisenUli ]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original erstellt von EisenUli:

<STRONG>Hi,

Noch was: In der Zeichenkette erzeugst Du mit "\t" das ASCII-Zeichen fuer einen Tabulator, weil '\' eine sog. Escape-Sequenz ist und nicht etwa das ASCII-Zeichen fuer Backslash.

Uli

[ 15. Juni 2001: Beitrag editiert von: EisenUli ]</STRONG>

Deswegen string="c:\\test\\test.gif"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...