Programm aufruf ueber konsole.

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
swiffer
Beiträge: 81
Registriert: 10.04.2005 11:58:10
Wohnort: Wickede

Programm aufruf ueber konsole.

Beitrag von swiffer » 10.04.2005 13:35:59

Hallo.

Ich habe als "programmieruebung" mir einen taschenrechner unter c fuer linux geschrieben.
nun moechte ich ihn aber als "konsolen programm" aufrufen.
also das ich tippe

sh programmname zahl1 + zahl2
und das ergebnis wird mir dann am prompt ausgegeben.

wie nennt man sowas? das is danach googlen kann.

Gruß,
Stefan.

Benutzeravatar
tiax
Beiträge: 373
Registriert: 08.10.2003 17:53:38
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Beitrag von tiax » 10.04.2005 13:55:31

Wie man sowas nennt, weiß ich nicht, aber vielleicht hilft ja die suche nach "C argv" was.

Benutzeravatar
mauser
Beiträge: 1854
Registriert: 27.01.2005 22:34:48

Beitrag von mauser » 10.04.2005 14:31:19

hi,

du meinst die kommandozeilen argumente, siehe http://www.pronix.de/pronix-751.html.

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 11.04.2005 09:29:04

Wenn du da komplexere Sachen brauchst koennte auch getopt einen Blick wert sein.
Ansonsten musst du halt die Parameter wie schon gesagt wurde via argv und co einlesen.

Benutzeravatar
seep
Beiträge: 544
Registriert: 31.10.2004 14:21:08
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: HSK

Re: Programm aufruf ueber konsole.

Beitrag von seep » 11.04.2005 09:57:05

swiffer hat geschrieben:sh programmname zahl1 + zahl2
und das ergebnis wird mir dann am prompt ausgegeben.

wie nennt man sowas? das is danach googlen kann.

Code: Alles auswählen

dirk@prefect:~
$ expr 1 + 2 
3
Oder meintest Du in C? Dann hier mal (ungetestet) schnell direkt getippt:

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (const int argc, const char *argv[]) {

  if (argc<4) {
    fprintf(stderr, "Usage: %s number + number\n", argv[0]);
    return 1;
  }

  int num1= atoi(argv[1]);
  char op= argv[2][0];
  int num2= atoi(argv[3]);

  switch(op) {
  case '+':
    printf("%d\n", num1 + num2);
    break;
  case '-':
    printf("%d\n", num1 - num2);
    break;
  case '*':
    printf("%d\n", num1 * num2);
    break;
  }
  

  return 0;
}
Der Code oben ist hochgradig von Fehlerquellen durchsetzt, soll nur als Beispiel dienen. :wink:

Benutzeravatar
swiffer
Beiträge: 81
Registriert: 10.04.2005 11:58:10
Wohnort: Wickede

Geloest. Danke :)

Beitrag von swiffer » 15.04.2005 15:08:13

C argv hat mir weitergeholfen.

Danke Seep fuer das Stueck Code. Hat mir sehr weitergeholfen.
werde morgen oder uebermorgen die endloesung hier posten.

Gruß,
Stefan.

Antworten