Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

1/1

Zdrojové soubory z výuky

Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".

20110214-Mon-mytee.c
   1 /*
   2  * Soubor:  20110214-Mon-mytee.c
   3  * Datum:   14.02.2011
   4  * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   5  * Licence: GNU/GPL 
   6  * Úloha:  jak přebírat parametry z příkazové řádky
   7  */
   8 
   9 #define _ISOC99_SOURCE
  10 #define _GNU_SOURCE
  11 #include <stdio.h>
  12 #include <stdlib.h>
  13 #include <string.h>
  14 #include <assert.h>
  15 #include <stdbool.h>
  16 #include <limits.h>
  17 #include <math.h>
  18 #include <unistd.h>
  19 
  20 
  21 /**
  22  * Vytiskne na stdout text s nápovědou.
  23  */
  24 void printHelp()
  25 {
  26     printf("Program .\n"
  27            "Program počítá .\n\n");
  28 }
  29 
  30 /////////////////////////////////////////////////////
  31 /**
  32  * Hlavní program.
  33  */
  34 int main(int argc, char *argv[])
  35 {
  36     /* 
  37      * Zpracování parametrů příkazového řádku 
  38      */
  39     int c;
  40     while ((c = getopt(argc, argv, "ha:")) != -1) {
  41         switch (c) {
  42         case 'h':
  43             printHelp();
  44             break;
  45         case 'a':
  46             printf("volba: a, s parametrem: %s\n", optarg);
  47             break;
  48         case '?':
  49             printf("neplatná volba: %c -- končím\n", optopt);
  50             return 1;
  51             break;
  52         }
  53     }
  54 
  55     printf("--------------------------------\n");
  56     /* všechny parametry */
  57     for (int i = 0; i < argc; i++) {
  58         //puts(argv[i]);
  59         printf("%s\n",argv[i]);
  60     }
  61     printf("--------------------------------\n");
  62     /* patametry, které nejsou přepínači */
  63     for (int i = optind; i < argc; i++) {
  64         puts(argv[i]);
  65     }
  66 
  67     return 0;
  68 }
`--> stáhnout

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net