C ++ fscanf () - štandardná knižnica C ++

Funkcia fscanf () v C ++ sa používa na čítanie údajov zo toku súborov.

prototyp fscanf ()

 int fscanf (FILE * stream, const char * formát, …);

fscanf()Funkcia číta dáta zo súboru dátového prúdu a ukladá hodnoty do príslušných premenných.

Je definované v hlavičkovom súbore.

Parametre fscanf ()

  • stream: Vstupný tok súborov, z ktorého sa majú načítať údaje.
  • format: Ukazovateľ na prázdny znakový reťazec, ktorý určuje, ako sa má čítať vstup. Skladá sa zo špecifikátorov formátu začínajúcich na%.

    Reťazec formátu má nasledujúce časti:

    • Non whitespace charactersokrem% každý z nich spotrebuje jeden identický znak zo vstupného toku. Môže to spôsobiť zlyhanie funkcie, ak sa nasledujúci znak v streame neporovnáva rovnako.
    • Whitespace character: Všetky nasledujúce znaky medzery sa považujú za jeden znak medzery. Ďalej sa ' n', ' t' a '' považujú za rovnaké.
    • Conversion specification: Má nasledujúci formát:
      • Počiatočný znak%, ktorý určuje začiatok
      • Voliteľný * znak, ktorý sa nazýva znak potlačujúci priradenie. Ak je tento znak k dispozícii, funkcia fscanf () nepriradí výsledok žiadnemu prijímaciemu argumentu.
      • Voliteľné kladné celé číslo, ktoré určuje maximálnu šírku poľa. Určuje maximálny počet znakov, ktoré môže fscanf () spotrebovať pri uskutočňovaní prevodu špecifikovaného v aktuálnej špecifikácii prevodu.
      • Voliteľný modifikátor dĺžky určujúci veľkosť prijímacieho argumentu.
      • Špecifikátor formátu prevodu.
        Špecifikátor formátu Popis
        % Zhoduje sa s literálnym%
        c Zhoduje sa s jedným alebo viacerými znakmi. Ak je definovaná šírka, zhoduje sa presne so znakmi šírky.
        s Zhoda po sebe idúcich znakov bez medzier. Ak je definovaná šírka, zhoduje sa presne so znakmi šírky alebo kým sa nenájde prvý medzera.
        (sada) Zhoduje sa s neprázdnou sekvenciou znakov z danej sady znakov. Pokiaľ je na začiatku množiny, potom sa všetky znaky, ktoré nie sú v množine, zhodujú.
        d Zhoduje sa s desatinným celým číslom.
        i Zhoduje sa s celým číslom.
        o Zhoduje sa s nepodpísaným osmičkovým celým číslom.
        X alebo x Zhoduje sa s hexadecimálnym celým číslom bez znamienka.
        u Zhoduje sa s desatinným celým číslom bez znamienka.
        A alebo a, E alebo e, F alebo f, G alebo g Zhoduje sa s plávajúcou desatinnou čiarkou.
        n Vráti počet doteraz prečítaných znakov.
        p Zhoduje sa s postupnosťou znakov definovaných implementáciou, ktorá definuje ukazovateľ.
    Všeobecný formát špecifikátora formátu je teda: %(*)(width)(length)specifier
  • …: Ďalšie ďalšie argumenty pre príjem údajov. Vyskytujú sa v poradí podľa špecifikátora formátu.

fscanf () Vrátená hodnota

  • Ak je úspešná, fscanf()funkcia vráti počet úspešne priradených prijímajúcich argumentov.
  • Ak dôjde k zlyhaniu párovania pred priradením prvého prijímacieho argumentu, vráti nulu.
  • Ak dôjde k zlyhaniu vstupu pred priradením prvého prijímacieho argumentu, vráti sa EOF.

Príklad: Ako funguje funkcia fscanf ()

 #include int main () ( FILE *fp; char name(50); int age; fp = fopen("example.txt","w"); fprintf(fp, "%s %d", "Tim", 31); fclose(fp); fp = fopen("example.txt","r"); fscanf(fp, "%s %d", name, &age); fclose(fp); printf("Hello %s, You are %d years old", name, age); return 0; )

Po spustení programu bude možný výstup:

 Ahoj Tim, máš 31 rokov

Zaujímavé články...