Fprintf (jazyk C): Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „{{Funkcie jazyka c}} __NOTOC__ ==Funkcia fprintf== <properties> knižnica = stdio.h popis = zápis znakov do súboru </properties> Úplný funkčný prototyp: <source…“)
 
 
(7 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 14: Riadok 14:
  
 
==Popis funkcie==
 
==Popis funkcie==
Funkcia fprintf () sa používa na zápis množiny znakov do súboru. Odošle formátovaný výstup do toku.
+
Funkcia [[Fprintf (jazyk C)|fprintf]]() sa používa na zápis množiny znakov do súboru. Odošle formátovaný výstup do toku.
  
 
==Parametre==
 
==Parametre==
*stream - Toto je ukazovateľ na objekt FILE, ktorý identifikuje tok.
+
;''stream'': Toto je pointer na objekt FILE, ktorý identifikuje tok.
  
*format - Obsahuje text ktorý zapíšeme do streamu. Može obsahovať volitelné tagy vloženého formátu, ktoré sú nahradené hodnotami špecifikovanými v nasledujúcich dodatočných argumentoch podľa potreby. Formát tagov je %[flags][width][.precision][length].
+
;''format'': Obsahuje text ktorý zapíšeme do streamu. Može obsahovať volitelné tagy vloženého formátu, ktoré sú nahradené hodnotami špecifikovanými v nasledujúcich dodatočných argumentoch podľa potreby. Formát tagov je %[flags][width][.precision][length]. Ak chcete vedieť viac o formátovaní, prejdite na stránku [[Printf (jazyk C)|printf]].
  
Tabuľka formátovacích znakov:
+
;''Doplknové argumenty'': V závislosti od formátu stringu, funkcia može očakávať postupnosť doplnkových argumentov, ktoré majú jednu hodnotu namiesto %znak špecifikovaného v parametri formátu. Ak existuje tak by mal byť rovnaký počet týchto argumentov ako počet %znakov ktoré obsahujú túto hodnotu.
{| class="wikitable"
 
! formátovací znak !! Výstup !! Príklad
 
|-
 
! ''d'' alebo ''i''
 
| Celé dekadické číslo (napr. ''int'') || 392
 
|-
 
! ''u''
 
| Prirodzené dekadické číslo (napr. ''unsigned int'') || 7235
 
|-
 
! ''o''
 
| Prirodzené oktagonálne číslo (osmičková sústava) || 610
 
|-
 
! ''x''
 
| Prirodzené hexadecimálne číslo || 7fa
 
|-
 
! ''X''
 
| Prirodzené hexadecimálne číslo (veľké písmená) || 7FA
 
|-
 
! ''f''
 
| Racionálne číslo, malé písmená || 392.65
 
|-
 
! ''F''
 
| Racionálne číslo, veľké písmená || 392.65
 
|-
 
! ''e''
 
| Vedecký zápis (mantissa/exponent), malé písmená || 3.9265e+2
 
|-
 
! ''E''
 
| Vedecký zápis (mantissa/exponent), veľké písmená || 3.9265E+2
 
|-
 
! ''g''
 
| Použije kratší zápis: ''%''e or ''%f'' || 392.65
 
|-
 
! ''G''
 
| Použije kratší zápis: ''%E'' or ''%F'' || 392.65
 
|-
 
! ''a''
 
| Hexadecimálne racionálne číslo, malé písmená || -0xc.90fep-2
 
|-
 
! ''A''
 
| Hexadecimálne racionálne číslo, veľké písmená || -0XC.90FEP-2
 
|-
 
! ''c''
 
| Znak || a
 
|-
 
! ''s''
 
| Textový reťazec || priklad
 
|-
 
! ''p''
 
| Adresa smerníka || b8000000
 
|-
 
! ''n''
 
| Nič nevypíše. Zodpovedajúci argument musí byť smerníkom na signed int.
 
Počet doteraz napísaných znakov sa potom uloží na toto miesto. || &nbsp
 
|-
 
! ''%''
 
| ''%'' nasledované ďalším ''%'' vypíše iba jedno ''%''. || %
 
|}
 
 
 
{| class="wikitable"
 
! flags !! Popis
 
|-
 
! ''<nowiki>-</nowiki>''
 
| Zarovnať vľavo v rámci danej šírky poľa; Predvolené je zarovnanie napravo (pozri špecifikátor ''šírky'').
 
|-
 
! ''<nowiki>+</nowiki>''
 
| Vynúti vypísanie znamienka plus alebo mínus (+ alebo -) pred hodnotu aj pre kladné čísla. V predvolenom nastavení sú pred záporným znamienkom iba záporné čísla.
 
|-
 
! ''(medzera)''
 
| Ak sa nebude vypisovať žiadne znamienko, pred hodnotu sa vloží medzera.
 
|-
 
! ''#''
 
| Pri použití so špecifikátormi o, x alebo X sa pre hodnotami inými ako nula vypíše hodnota ''0'', ''0x'' alebo ''0X''. Pri použití s ​​písmenami A, e, E, f, F, g alebo G vypísaná hodnota bude obsahovať desatinnú čiarku, aj keď už nebudú nasledovať ďalšie číslice. V predvolenom nastavení, ak nenasledujú žiadne číslice, nevypisuje sa desatinná čiarka.
 
|-
 
! ''0''
 
| Číslo bude zľava odsadené nulami, nie medzerami ako je predvolené (pozri špecifikátor ''šírky'').
 
|}
 
 
 
{| class="wikitable"
 
! šírka !! Popis
 
|-
 
! ''(číslo)''
 
| Minimálny počet vypísaných znakov. Ak je výstupná hodnota, menšia ako toto číslo, text je zľava odsadený medzerami. Hodnota nie je orezaná, aj keď je vypísaný výsledok väčší.
 
|-
 
! ''*''
 
| Šírka nie je zadaná vo formátovacom texte, ale ako dodatočný celočíselný argument predchádzajúci argumentu, ktorý sa musí naformátovať.
 
|}
 
 
 
{| class="wikitable"
 
! presnosť !! Popis
 
|-
 
! ''.číslo''
 
| "Pre celé čísla (''d'', ''i'', ''o'', ''u'', ''x'', ''X''): presnosť určuje minimálny počet číslic, ktoré sa majú vypísať. Ak je hodnota, ktorá sa má vypísať, kratšia ako toto číslo, výsledok je vyplnený nulami. Hodnota nie je orezaná, aj keď je výsledok dlhší. Presnosť 0 znamená, že pre hodnotu 0 nie je vypísaný žiaden znak. Pre formátovacie znaky ''a'', ''A'', ''e'', ''E'', ''f'' a ''F'': toto je počet číslic, ktoré sa majú vypísať '''za''' desatinnou čiarkou (štandardne je to 6). Pre formátovacie znaky ''g'' a ''G'' je toto číslo maximálny počet platných číslic, ktoré sa majú vypísať. Pre ''s'' je toto číslo maximálny počet znakov, ktoré sa majú vypísať. V predvolenom nastavení sa všetky znaky vypisujú, až kým až po ukončovací nulový znak. Ak je presnosť zadaná bez explicitnej hodnoty presnosti, prednastavená hodnota je 0.
 
|-
 
! ''.*''
 
| Presnosť nie je uvedená vo formátovacom texte, ale ako dodatočný celočíselný argument predchádzajúci argumentu, ktorý sa musí naformátovať.
 
|}
 
 
 
Tabuľka použitia premenných a formátovacích znakov:
 
{| class="wikitable"
 
! dĺžka !! d i !! u o x X !! f F e E g G a A !! c !! s !! p !! n
 
|-
 
! (žiadna)
 
| int || unsigned int || double || int || char* || void* || int*
 
|-
 
! hh
 
| signed char || unsigned char ||  ||  ||  ||  || signed char*
 
|-
 
! h
 
| short int || unsigned short int ||  ||  ||  ||  || short int*
 
|-
 
! l
 
| long int || unsigned long int ||  || wint_t || wchar_t* ||  || long int*
 
|-
 
! ll
 
| long long int || unsigned long long int ||  ||  ||  ||  || long long int*
 
|-
 
! j
 
| intmax_t || uintmax_t ||  ||  ||  ||  || intmax_t*
 
|-
 
! z
 
| size_t || size_t ||  ||  ||  ||  || size_t*
 
|-
 
! t
 
| ptrdiff_t || ptrdiff_t ||  ||  ||  ||  || ptrdiff_t*
 
|-
 
! L
 
|  ||  || long double ||  ||  ||  ||
 
|}
 
 
 
 
 
*Doplknové argumenty - V závislosti od formátu stringu, funkcia može očakávať postupnosť doplnkových argumentov, ktoré majú jednu hodnotu namiesto %znak špecifikovaného v parametri formátu. Ak existuje tak by mal byť rovnaký počet týchto argumentov ako počet %znakov ktoré obsahujú túto hodnotu.
 
  
 
==Návratová hodnota==
 
==Návratová hodnota==
Riadok 163: Riadok 31:
  
 
int main () {
 
int main () {
   FILE *fp;
+
   FILE *subor;
 
   int c;
 
   int c;
  
   fp = fopen("file.txt","r");
+
   subor = fopen("file.txt","r"); //Otvorenie súboru
 
   while(1) {
 
   while(1) {
       c = fgetc(fp);
+
       c = fgetc(subor);           //Načítanie jedného znaku
       if( feof(fp) ) {
+
       if( feof(subor) ) {         //Hľadanie konca súboru
 
         break;
 
         break;
 
       }
 
       }
       printf("%c", c);
+
       printf("%c", c);           //Výpis na obrazovku
 
   }
 
   }
   fclose(fp);
+
   fclose(subor);                 //Zatvorenie súboru
   return(0);
+
 
 +
   return 0;
 
}
 
}
 
</source>
 
</source>
  
Výstup
+
''Výstup:''
<source lang="c">
+
''text vypísaný vo výstupe bude totožný s tým čo sa nachádza v súbore file.txt''
text vypísaný vo výstupe bude totožný s tým čo sa nachádza v súbore file.txt
 
</source>
 

Aktuálna revízia z 23:16, 19. máj 2020

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 fprintf

knižnica

stdio.h

popis

zápis znakov do súboru


Úplný funkčný prototyp:

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

Popis funkcie

Funkcia fprintf() sa používa na zápis množiny znakov do súboru. Odošle formátovaný výstup do toku.

Parametre

stream
Toto je pointer na objekt FILE, ktorý identifikuje tok.
format
Obsahuje text ktorý zapíšeme do streamu. Može obsahovať volitelné tagy vloženého formátu, ktoré sú nahradené hodnotami špecifikovanými v nasledujúcich dodatočných argumentoch podľa potreby. Formát tagov je %[flags][width][.precision][length]. Ak chcete vedieť viac o formátovaní, prejdite na stránku printf.
Doplknové argumenty
V závislosti od formátu stringu, funkcia može očakávať postupnosť doplnkových argumentov, ktoré majú jednu hodnotu namiesto %znak špecifikovaného v parametri formátu. Ak existuje tak by mal byť rovnaký počet týchto argumentov ako počet %znakov ktoré obsahujú túto hodnotu.

Návratová hodnota

Ak sa funkcia úspešne vykoná vráti sa celkový počet znakov napísaných, inak sa vráti záporné číslo.

Príklad

 1 #include <stdio.h>
 2 
 3 int main () {
 4    FILE *subor;
 5    int c;
 6 
 7    subor = fopen("file.txt","r"); //Otvorenie súboru
 8    while(1) {
 9       c = fgetc(subor);           //Načítanie jedného znaku
10       if( feof(subor) ) {         //Hľadanie konca súboru
11          break;
12       }
13       printf("%c", c);            //Výpis na obrazovku
14    }
15    fclose(subor);                 //Zatvorenie súboru
16 
17    return 0;
18 }

Výstup:

text vypísaný vo výstupe bude totožný s tým čo sa nachádza v súbore file.txt