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.

Konsole-Programm mit Parametern aufrufen...

Empfohlene Antworten

Veröffentlicht

Hallo,

ich möchte gerne in C ein Konsole-Programm schreiben (Windows und Linux lauffähig), dass in der Lage ist, mit Parametern aufgerufen zu werden, also z.B. so:

xxxx.exe -a was-weiß-ich -b ich-hab-keine-Ahnung

nun also meine Frage: Wie kann ich diese Parameter innerhalb des Hauptprogramms abfragen, bzw. wo finde ich Informationen dazu im Netz?

Grüße

Björn

Morgen,

schau dir mal folgenden Code an, muesste eigentlich funktionieren:

main(int argc, char *argv[]) /* mit Parameter-Uebergabe */

{

char cInFileName[13];

if (argv[1] == NULL) /* kein Parameter ubergeben?*/

{

printf("\nBitte Parameter eingeben: ");

gets(cInFileName);

}

else

{

strcpy(cInFileName,argv[1]);

}

Das Programm schreibt den uebergebenen Paramter in die Variable cInFileName ist der Parameter nicht angegeben so verlangt das Programm nachtraeglich eine eingabe.

Vieleicht hilft die das.

Die Aufrufparameter, die auf der Kdo-Zeile mitgegeben werden, erhält die Funktion main als nullterminiertes Array von Zeigern auf char-Arrays ( ganz einfach :) )

Die Anzahl der Parameter wird ebenfalls übergeben. Dies sind die beiden Variablen, die per Konvention

int argc // Anzahl

char** argv // Array von Pointern auf char*

Wenn du main() als

int main(int argc, char** argv)

definierst, kannst du innerhalb auf die Parameter zugreifen. argv[0] ist dabei der Name, unter dem das Prg aufgerufen wurde. Ruf mal dieses mit verschieden Parametern auf:


#include <stdio.h>


int main(int argc, char** argv)

{

	printf("%d Parameter uebergeben\n", argc); // Anzahl


	for(int i = 0; i < argc; i++) // Werte

		puts(argv[i]);


	printf("Wert von argv[argc]: %d\n", argv[argc]); // nullterminiert


	return 0;

}

<FONT COLOR="#a62a2a" SIZE="1">[ 22. Oktober 2001 09:35: Beitrag 1 mal editiert, zuletzt von captain haddock ]</font>

P.S. Leider ist die cmd.exe von WinDoof, im Gegensatz zu z.B. einer bash, nicht in der Lage Joker aufzulösen. Ein Parameter der Form *.* wird ans Prg unverändert als "*.*" weitergegeben, sodaß du dich, zumindest unter halbgaren Betriebssystemen, selber um solchen Kram kümmern mußt. Mit einer bash hast du dieses Prob natürlich nicht :D

Die kann man sich zur eigenen Erbauung aber auch unter Win**** installieren, zum Glück.

http://www.c-plusplus.de/index.htm

Forum rund um C/C++ und C#

<FONT COLOR="#a62a2a" SIZE="1">[ 22. Oktober 2001 09:54: Beitrag 1 mal editiert, zuletzt von ResidentDJ ]</font>

Soweit ich das in Errinerung habe, ist wird der Programmaufruf auch mitgezählt. Somit ist der erste Parameter in argv[1] und nicht in argv[0]

Oh sorry der Captain hat des ja schon angemerkt.

<FONT COLOR="#a62a2a" SIZE="1">[ 22. Oktober 2001 11:40: Beitrag 1 mal editiert, zuletzt von DocNeo ]</font>

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.