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: 20111020-Thu-soubory.c
3 * Datum: 20.10.2011 08:25
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha:
7 * Popis:
8 ****************************************************/
9 #define _ISOC99_SOURCE
10 #define _GNU_SOURCE
11 #include <stdio.h>
12
13
14 /****************************************************
15 * Hlavní program.
16 ****************************************************/
17 int main(void)
18 {
19
20 /* zápis */
21 FILE *soubor;
22
23 soubor = fopen("vystup.txt", "a");
24 fprintf(soubor, "ahoh ahoj ahoj\n");
25 fprintf(stdout, "ahoh ahoj ahoj\n");
26 fclose(soubor);
27
28 /* čtení */
29 char znak;
30 FILE *souborR;
31
32 if ((souborR = fopen("vstup.txt", "r")) == NULL) {
33 fprintf(stderr, "soubor se nepodařilo otevřít\n");
34 perror("Chyba");
35 } else {
36 while ((znak = fgetc(souborR)) != EOF) {
37 putchar(znak);
38 putc(znak, stdout);
39 }
40 putchar('\n');
41 fclose(souborR);
42 }
43
44 char uznak;
45 FILE *nahoda;
46 nahoda = fopen("/dev/random", "r");
47 uznak = fgetc(nahoda);
48 printf(">>>> %d\n", uznak);
49 fclose(nahoda);
50
51 printf("%ld\n", sizeof(int));
52
53 ///////////////////////////////////////
54 FILE *data;
55 int cislo;
56 data = fopen("data.bin", "r");
57 fread((void *) &cislo, sizeof(int), 1, data);
58 fclose(data);
59
60 printf("data jsou: %X\n", cislo);
61
62 ///////////////////////////////////////
63 char pole[100];
64 data = fopen("data.bin", "r");
65 int i = 0;
66 while ((pole[i] = fgetc(data)) != EOF) {
67 i++;
68 }
69 fclose(data);
70
71 int *ukazatel_na_int;
72 ukazatel_na_int = (int *) pole;
73 printf("DATA JSOU: %X\n", *ukazatel_na_int);
74
75 ///////////////////////////////////////
76 return 0;
77 }