Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Verhalten vom Befehl "system"

Empfohlene Antworten

Veröffentlicht

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! :)

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 ]

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"

  • Autor

*Moinmoin*

Habs probiert und es klappt ohne Probleme. :)

Dafür habe ich jetzt ein anderes... *arg* ...aber das paßt hier nicht zum Thema, habe daher ein neues eröffnet.

Dieser post hier kann eigentlich geschlossen werden, da ja die Frage beantwortet ist.

Tachyoon

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.