Uživatelské nástroje

Nástroje pro tento web


strprg:c:soubory

Čtení a zápis souborů

Všechny funkce, které budeme pro tyto operace potřebovat najdeme ve standardní knihovně <stdio.h>. C podporuje tzv. bitový a textový režim.

Rozdíl 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.

Jak na to?

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

Režimy

Základní textové jsou:

  • „r“ = pouze čtení
  • „w“ = pouze přepisování
  • „a“ = připisování na konce souboru

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ě.

Čtení obsahu

Textový režim

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);
Bitový režim

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);

Zápis

Textový režim

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);
Bitový režim

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.

strprg/c/soubory.txt · Poslední úprava: 12. 03. 2014, 15.32 (upraveno mimo DokuWiki)