Uživatelské nástroje

Nástroje pro tento web


strprg:c:soubory

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
strprg:c:soubory [08. 03. 2014, 10.34]
rasa
strprg:c:soubory [12. 03. 2014, 15.32] (aktuální)
Řádek 1: Řádek 1:
 ====== Čtení a zápis souborů ====== ====== Č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. 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? ====
 +<code c>
 +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
 +</​code>​
 +
 +==== 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:
 +<code c>
 +fscanf(ukazatel,​ typ, do čeho);
 +</​code>​
 +Syntaxe fgetc:
 +<code c>
 +proměnná/​ukazatel = fgetc(ukazatel);​
 +</​code>​
 +== Bitový režim ==
 +Zde máme jedinou funkci a to fread. Její syntaxe:
 +<code c>
 +pocet_nactenych_polozek = fread(ukazatel_do_pameti,​ velikost_typu,​ pocet_nacitanych_jednotek,​ ukazatel_na_soubor);​
 +</​code>​
 +
 +==== Zápis ====
 +== Textový režim ==
 +Opět máme 2 možnosti. Univerzální fprintf a fputs, který vkládád stringy.
 +Syntaxe fprintf:
 +<code c>
 +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
 +</​code>​
 +fputs:
 +<code c>
 +fputs(proměnná se stringem, soubor);
 +</​code>​
 +== Bitový režim ==
 +Opět pouze 1 varianta, tentokrát fwrite.
 +<code c>
 +fwrite (co, velikost typu, kolikrát, kam);
 +</​code>​
 +----
 +Pokud potřebujete celkovou syntaxi všech funkcí, doporučuji [[http://​www.cplusplus.com/​reference/​cstdio/​|dokumentaci knihovny <​stdio.h>​]] a článek [[http://​www.linuxsoft.cz/​article.php?​id_article=899|Soubory]] na linuxsoft.cz.
strprg/c/soubory.1394271240.txt.gz · Poslední úprava: 08. 03. 2014, 10.34 autor: rasa