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

Následující verze
Předchozí verze
strprg:c:soubory [08. 03. 2014, 10.23] – vytvořeno rasastrprg:c:soubory [12. 03. 2014, 15.32] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
-====== Čtení 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.
  
 +== 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.1394270611.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki