Opcije.c

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <string.h>
 
int razlicica_flag = 0;
int pomoc_flag = 0;
char vhod_dat[256];
char izhod_dat[256];
 
struct option dolge_opcije[] = {
    {"razlicica",   no_argument,        &razlicica_flag,    1},
    {"pomoc",       no_argument,        &pomoc_flag,        1},
    {"vhod",        required_argument,  0,                  'v'},
    {"izhod",       required_argument,  0,                  'i'},
    {"pregled",     no_argument,        0,                  'p'}
};
 
int main(int argc, char ** argv) {
    int indeks_opcije;
    int c;
 
    printf("***** Obdelava argumentov programa *****\n");
    printf("Obdelava opcij:\n");
    while (1) {
        c = getopt_long(argc, argv, "prv:i:", dolge_opcije, &indeks_opcije);
        if (c == -1)
            break;
        switch (c) {
            case 0:
                printf("Vkljucena opcija %s", dolge_opcije[indeks_opcije].name);
                if (optarg)
                    printf("s parametrom %s", optarg);
                printf("\n");
                break;
 
            case 'v':
                printf("Vhodna datoteka: %s\n", optarg);
                strcpy(vhod_dat, optarg);
                break;
 
            case 'i':
                printf("Izhodna datoteka: %s\n", optarg);
                strcpy(izhod_dat, optarg);
                break;
 
            case 'p':
                printf("Vključena opcija pregled.\n");
                break;
 
            case 'r':
                printf("Vključena opcija r.\n");
                break;
 
            case '?':
                printf("Neznana opcija %c.\n", optopt);
                break;
 
            default:
                printf("Opcija %c ni sprogramirana.\n", c);
                break;
        }
    }
 
    int i;
    printf("Ostali argumenti:\n");
    for (i = optind; i < argc; i++)
        printf ("argv[%i]\t= %s\n", i, argv[i]);
 
    printf("***** Delovni del programa *****\n");
 
    if (razlicica_flag) {
        printf("Program opcije razlicica 1.0\n");
        return 0;
    }
 
    if (pomoc_flag) {
        printf("Uporaba opcije --razlicica --pomoc --pregled --vhod dat --izhod dat -v dat -i dat -p -r\n");
        return 0;
    }
    exit (0);
}
Vzpostavljeno iz »http://www.e-studij.si/Opcije.c«
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja