Všechny funkce, které budeme pro tyto operace potřebovat najdeme ve standardní knihovně <stdio.h>. C podporuje tzv. bitový a textový režim.
Pro počítač žádný, protože i textový soubor je pro něj změť bajtů, ale ke kterým má instrukce, jak je převádět. Pro vás je důležité vědět, že se u bitového a textového režimu používají jiné funkce pro práci s daty souboru.
FILE * ukazatel; //vytvoříme ukazatel ukazatel = fopen("file.txt", "r"); //otevřeme soubor file.txt, v režimu čtení if(ukazatel == NULL){ //zkontrolujeme jestli se soubor načetl správně return 1; } /* nyní pracujeme s obsahem souboru */ fclose(ukazatel); //nezapomínáme soubor na konci uzavřít
Základní textové jsou:
A co, když chci číst i zapisovat? Stačí pouze za písmeno přidat '+' (např. „r+“). Pro jejich bitovou variantu přidáme 'b', stejně jako v předchozím případě.
Pro čtení můžeme použít univerzální funkci fscanf, nebo pokud nám stačí načítat po charu tak máme k dispozici funkci fgetc. Systaxe fscanf:
fscanf(ukazatel, typ, do čeho);
Syntaxe fgetc:
proměnná/ukazatel = fgetc(ukazatel);
Zde máme jedinou funkci a to fread. Její syntaxe:
pocet_nactenych_polozek = fread(ukazatel_do_pameti, velikost_typu, pocet_nacitanych_jednotek, ukazatel_na_soubor);
Opět máme 2 možnosti. Univerzální fprintf a fputs, který vkládád stringy. Syntaxe fprintf:
int x = 10; fprintf(ukazatel na soubor, 'Text "%i"\n', x); //prakticky stejné, jako klasické printf, pouze je třeba na začátku přidat ukazatel
fputs:
fputs(proměnná se stringem, soubor);
Opět pouze 1 varianta, tentokrát fwrite.
fwrite (co, velikost typu, kolikrát, kam);
Pokud potřebujete celkovou syntaxi všech funkcí, doporučuji dokumentaci knihovny <stdio.h> a článek Soubory na linuxsoft.cz.