Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vytiskněte formátovaná data do datového proudu. K dispozici jsou bezpečnější verze těchto funkcí; viz fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l.
A _ftprintf viz mapování obecných textových funkcí._ftprintf_l
Syntaxe
int fprintf(
FILE *stream,
const char *format [,
argument ]...
);
int _fprintf_l(
FILE *stream,
const char *format,
_locale_t locale [,
argument ]...
);
int fwprintf(
FILE *stream,
const wchar_t *format [,
argument ]...
);
int _fwprintf_l(
FILE *stream,
const wchar_t *format,
_locale_t locale [,
argument ]...
);
Parametry
stream
Ukazatel na FILE strukturu.
format
Řetězec řízení formátu
argument
Volitelné argumenty
locale
Národní prostředí, které se má použít
Vrácená hodnota
fprintf vrátí počet zapsaných bajtů. fwprintf vrátí počet zapsaných širokých znaků. Každá z těchto funkcí místo toho vrátí zápornou hodnotu, když dojde k chybě výstupu. Pokud stream nebo format je NULL, tyto funkce vyvolat neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je možné pokračovat spuštěním, funkce vrátí hodnotu -1 a nastaví errno se na EINVALhodnotu . Formátovací řetězec se nekontroluje u platných znaků formátování, protože je při použití fprintf_s nebo fwprintf_s.
Další informace o návratových kódech naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.
Poznámky
fprintf formátuje a vytiskne řadu znaků a hodnot do výstupu stream. Každá funkce argument (pokud existuje) je převedena a výstup podle odpovídající specifikace formátu v format. format Argument fprintfmá stejnou syntaxi jako v argumentu printf.
fwprintf je širokoznaková verze znaku fprintf; in fwprintf, format je řetězec širokého znaku. Tyto funkce se chovají stejně, pokud je datový proud otevřen v režimu ANSI. fprintf v současné době nepodporuje výstup do datového proudu UNICODE.
Verze těchto funkcí s příponou _l jsou shodné s tím rozdílem, že používají parametr národního prostředí předaný místo aktuálního národního prostředí vlákna.
Důležité
Ujistěte se, že format není uživatelem definovaný řetězec.
Počínaje Windows 10 verze 2004 (build 19041) printf vytiskne řada funkcí přesně reprezentovatelná čísla s plovoucí desetinnou čárkou podle pravidel IEEE 754 pro zaokrouhlování. V předchozích verzích Windows by se vždy zaokrouhlila přesně reprezentovatelná čísla s plovoucí desetinnou čárkou končící na 5. IEEE 754 uvádí, že musí zaokrouhlit na nejbližší sudou číslici (označované také jako "Zaokrouhlování bankera"). Například obě printf("%1.0f", 1.5) a printf("%1.0f", 2.5) měly by se zaokrouhlit na 2. Dříve by se 1,5 zaokrouhlo na 2 a 2,5 by se zaokrouhlilo na 3. Tato změna má vliv jenom na přesně reprezentovatelná čísla. Například hodnota 2,35 (která je při znázornění v paměti blíže 2,350000000000008) pokračuje zaokrouhlit nahoru na 2,4. Zaokrouhlování provedené těmito funkcemi nyní respektuje také režim zaokrouhlování s plovoucí desetinou čárkou nastavený .fesetround Dříve bylo zaokrouhlení vždy zvoleno FE_TONEAREST chování. Tato změna má vliv jenom na programy vytvořené pomocí sady Visual Studio 2019 verze 16.2 a novější. Pokud chcete použít starší chování zaokrouhlení s plovoucí desetinou čárkou, použijte odkaz na legacy_stdio_float_rounding.obj.
Mapování obecných textových funkcí
Funkce ve sloupci tchar.h se mapuje na funkci v ostatních sloupcích v závislosti na znakové sadě, která je definována v době kompilace.
Funkce tchar.h |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
|---|---|---|---|
_ftprintf |
fprintf |
fprintf |
fwprintf |
_ftprintf_l |
_fprintf_l |
_fprintf_l |
_fwprintf_l |
Další informace naleznete v tématu Syntaxe specifikace formátu.
Požadavky
| Function | Požadovaný hlavičkový soubor |
|---|---|
fprintf, _fprintf_l |
<stdio.h> |
fwprintf, _fwprintf_l |
<stdio.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// crt_fprintf.c
/* This program uses fprintf to format various
* data and print it to the file named FPRINTF.OUT. It
* then displays FPRINTF.OUT on the screen using the system
* function to invoke the operating-system TYPE command.
*/
#include <stdio.h>
#include <process.h>
FILE *stream;
int main( void )
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
fopen_s( &stream, "fprintf.out", "w" );
fprintf( stream, "%s%c", s, c );
fprintf( stream, "%d\n", i );
fprintf( stream, "%f\n", fp );
fclose( stream );
system( "type fprintf.out" );
}
this is a string
10
1.500000
Viz také
Vstupně-výstupní operace streamu
_cprintf, _cprintf_l, , _cwprintf_cwprintf_l
fscanf, _fscanf_l, , fwscanf_fwscanf_l
sprintf, _sprintf_l, swprintf, , _swprintf_l_swprintf_l
Syntaxe specifikace formátu: printf a wprintf funkce