Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
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á".
1 /*
2 * Soubor: 20110218-Fri-soubory-menu.c
3 * Datum: 18.02.2011 08:14
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha: Práce se soubory pomocí jednoduché menu
7 ****************************************************/
8 #define _ISOC99_SOURCE
9 #define _GNU_SOURCE
10 #include <stdio.h>
11 #include <stdbool.h>
12 #include <ctype.h>
13 /* *************** Makra ******************** */
14
15 /* *************** Funkce ******************** */
16 void tisniMenu()
17 {
18 puts("Vyber akci:");
19 puts(" 1) Převod na malá písmena");
20 puts(" 2) Nahrazení snaku");
21 puts(" 3) Generování náhodného textu");
22 puts(" 4) Statistika souboru");
23 puts(" 5) Konec");
24 }
25
26 #define DELKA 128
27 void prevodZnaku()
28 {
29 FILE *fvstup;
30 FILE *fvystup;
31 char jmenoVstup[DELKA];
32 char jmenoVystup[DELKA];
33
34 printf("Zadej vstupní soubor > ");
35 scanf("%s",jmenoVstup);
36 if (( fvstup = fopen(jmenoVstup,"r") ) == NULL ) {
37 fprintf(stderr,"Nelze otevřít soubor %s\n",jmenoVstup);
38 perror("CHYBA");
39 return;
40 }
41
42 printf("Zadej výstupní soubor > ");
43 scanf("%s",jmenoVystup);
44 fvystup = fopen(jmenoVystup,"w");
45
46 int znak;
47 while ( (znak = fgetc(fvstup) ) != EOF ) {
48 fputc(tolower(znak),fvystup);
49 }
50 fclose(fvstup);
51 fclose(fvystup);
52
53 }
54
55
56 /****************************************************
57 * Hlavní program.
58 ****************************************************/
59 int main(void)
60 {
61 int volba = 0;
62 while (volba != 5) {
63 tisniMenu();
64 if ( scanf("%d", &volba) != 1 ) {
65 while ( getchar() != '\n') ;// vyprazdni vstupni buffer
66 volba = 0;
67 }
68 switch (volba) {
69 case 1:
70 prevodZnaku();
71 break;
72 case 2:
73 printf("zadal jsi %d\n\n", 2);
74 break;
75 case 3:
76 printf("zadal jsi %d\n\n", 3);
77 break;
78 default:
79 printf("zadal jsi NECO JINAK\n\n");
80 break;
81 }
82 }
83
84
85 return 0;
86 }