Fscanf (jazyk C)

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Rozdelenie funkcií jazyka C podľa knižníc, v ktorých sú definované
<ctype.h> <limits.h> <stdio.h> <stdlib.h> <math.h> <string.h> <time.h>

isalnum
isalpha
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit

printf
scanf
getc
putc
getchar
putchar
fprintf
fscanf
fgetc
fputc
fopen
fclose
feof

system
malloc
qsort
rand
srand
atoi
atol
atof
itoa
div
abs
labs

pow
fabs
exp
log
log10
sqrt
ceil
sin
cos

strlen
strcmp
strchr
strcpy
strstr
strcat
strncat

clock
time

Funkcia fscanf

knižnica

stdio.h

popis

Načíta dáta zo súboru


Úplný funčný prototyp

int fscanf(FILE *stream, const char *format, ...)

Podrobný popis funckie

Funkcia fscanf() sa používa na čítanie formátovaného vstupu zo súboru. Funguje to rovnako ako funkcia scanf(), ale namiesto čítania údajov zo štandardného vstupu číta údaje zo súboru. V skutočnosti je väčšina argumentov funkcie fscanf() rovnaká ako funkcia scanf(), okrem toho, že potrebuje ďalší argument, ukazovateľ súboru. Po ukončení táto funkcia vráti počet načítaných hodnôt a pri chybe alebo na konci súboru vráti 'EOF alebo -1.

Parametre

stream
Toto je pointer na objekt FILE, ktorý identifikuje tok.
format
Formát vstupných dát. Akýkoľvek biely znak oddeľuje hodnoty (rovnako aj pri reťazcoch). Ak chcete vedieť viac o formátovaní, prejdite na stránku scanf.

Tvar formátu: %[*][šírka][dĺžka]formátovací znak ([] označujú, že daný špecifikátor je voliteľný)

Dodatočný argument
V závislosti na stringu môže funkcia obsahovať postupnosť ďalších argumentov, z ktorých každý obsahuje jednu hodnotu namiesto každého %-tag špecifikovaného v parametri formátu (ak existuje). Mal by existovať rovnaký počet týchto argumentov ako počet %-tag, ktoré očakávajú hodnotu.

Návratová hodnota

Táto funkcia vráti počet úspešne priradených vstupných položiek, ktoré môžu byť menšie, ako je stanovené, alebo dokonca nulové, v prípade skorého zlyhania.

Príklad

 1 #include <stdio.h>
 2 
 3 int main (){
 4     char str [80];
 5     float f;
 6     FILE *subor;
 7 
 8     subor = fopen ("myfile.txt","w+");           //otvorenie súboru
 9     fprintf (subor, "%f %s", 3.1416, "PI");      //zapísanie do súboru
10     rewind (subor);                              //vráti kurzor na začiatok
11     fscanf (subor, "%f", &f);                    //načítanie zo súboru
12     fscanf (subor, "%s", str);                   //načítanie zo súboru
13     fclose (subor);                              //zatvorenie súboru
14     printf ("Precital som: %f and %s \n",f,str); //vypísanie načítaného textu zo súboru na obrazovku
15     return 0;
16 }

Výstup:

Precital som: 3.141600 and PI