_fprintf_p
, _fprintf_p_l
, _fwprintf_p
, _fwprintf_p_l
Stampa i dati formattati in un flusso.
Sintassi
int _fprintf_p(
FILE *stream,
const char *format [,
argument ]...
);
int _fprintf_p_l(
FILE *stream,
const char *format,
_locale_t locale [,
argument ]...
);
int _fwprintf_p(
FILE *stream,
const wchar_t *format [,
argument ]...
);
int _fwprintf_p_l(
FILE *stream,
const wchar_t *format,
_locale_t locale [,
argument ]...
);
Parametri
stream
Puntatore alla struttura FILE
.
format
Stringa di controllo del formato.
argument
Argomenti facoltativi.
locale
Impostazioni locali da usare.
Valore restituito
_fprintf_p
e _fwprintf_p
restituiscono il numero di caratteri scritti o un valore negativo quando si verifica un errore di output.
Osservazioni:
La funzione _fprintf_p
formatta e stampa una serie di caratteri e di valori nell'elemento di output stream
. Ogni funzione argument
(se presente) viene convertita e restituita in base alla specifica di formato corrispondente in format
. Per _fprintf_p
, l'argomento format
ha la stessa sintassi di in _printf_p
. Queste funzioni supportano parametri posizionali, vale a dire che l'ordine dei parametri usati dalla stringa di formato può essere modificato. Per altre informazioni sui parametri posizionali, vedere Parametri posizionali printf_p.
_fwprintf_p
è una versione a caratteri wide di _fprintf_p
. In _fwprintf_p
, format
è una stringa di caratteri wide. Queste funzioni si comportano in modo identico se il flusso viene aperto in modalità ANSI. _fprintf_p
non supporta attualmente l'output in un flusso UNICODE.
Le versioni di queste funzioni con il suffisso _l
sono identiche ad eccezione per il fatto che usano il parametro delle impostazioni locali passato al posto di quelle correnti.
Importante
Assicurarsi che format
non sia una stringa definita dall'utente.
A partire da Windows 10 versione 2004 (build 19041), la printf
famiglia di funzioni stampa esattamente numeri a virgola mobile rappresentabili in base alle regole I edizione Enterprise E 754 per l'arrotondamento. Nelle versioni precedenti di Windows, i numeri a virgola mobile che terminano in '5' verrebbero sempre arrotondati. I edizione Enterprise E 754 indica che devono arrotondare alla cifra pari più vicina (nota anche come "Arrotondamento del banchiere"). Ad esempio, sia printf("%1.0f", 1.5)
che printf("%1.0f", 2.5)
devono essere arrotondati a 2. In precedenza, 1,5 arrotonderebbe a 2 e 2,5 arrotonderebbe a 3. Questa modifica influisce solo sui numeri rappresentabili esattamente. Ad esempio, 2.35 (che, se rappresentato in memoria, è più vicino a 2,350000000000000008) continua a arrotondare fino a 2,4. L'arrotondamento eseguito da queste funzioni ora rispetta anche la modalità di arrotondamento a virgola mobile impostata da fesetround
. In precedenza, l'arrotondamento ha sempre scelto FE_TONEAREST
il comportamento. Questa modifica interessa solo i programmi compilati con Visual Studio 2019 versione 16.2 e successive. Per usare il comportamento di arrotondamento a virgola mobile legacy, collegarsi a "legacy_stdio_float_rounding.obj".
Analogamente alle versioni non sicure (vedere fprintf
, _fprintf_l
fwprintf
, , ), _fwprintf_l
queste funzioni convalidano i relativi parametri e richiamano il gestore di parametri non validi, come descritto in Convalida dei parametri, se stream
o format
è un puntatore Null o se sono presenti identificatori di formattazione sconosciuti o non validi. Se l'esecuzione può continuare, le funzioni restituiranno -1 e imposteranno errno
su EINVAL
.
Mapping di routine di testo generico
Routine Tchar.h | _UNICODE e _MBCS non definito |
_MBCS Definito |
_UNICODE Definito |
---|---|---|---|
_ftprintf_p |
_fprintf_p |
_fprintf_p |
_fwprintf_p |
_ftprintf_p_l |
_fprintf_p_l |
_fprintf_p_l |
_fwprintf_p_l |
Per altre informazioni, vedere Sintassi delle specifiche di formato.
Requisiti
Funzione | Intestazione obbligatoria |
---|---|
_fprintf_p , _fprintf_p_l |
<stdio.h> |
_fwprintf_p , _fwprintf_p_l |
<stdio.h> o <wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// crt_fprintf_p.c
// This program uses _fprintf_p to format various
// data and print it to the file named FPRINTF_P.OUT. It
// then displays FPRINTF_P.OUT on the screen using the system
// function to invoke the operating-system TYPE command.
//
#include <stdio.h>
#include <process.h>
int main( void )
{
FILE *stream = NULL;
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
// Open the file
if ( fopen_s( &stream, "fprintf_p.out", "w" ) == 0)
{
// Format and print data
_fprintf_p( stream, "%2$s%1$c", c, s );
_fprintf_p( stream, "%d\n", i );
_fprintf_p( stream, "%f\n", fp );
// Close the file
fclose( stream );
}
// Verify our data
system( "type fprintf_p.out" );
}
this is a string
10
1.500000
Vedi anche
I/O di flusso
_cprintf
, _cprintf_l
, _cwprintf
, _cwprintf_l
fscanf
, _fscanf_l
, fwscanf
, _fwscanf_l
sprintf
, _sprintf_l
, swprintf
, _swprintf_l
, __swprintf_l
Parametri posizionali printf_p
_cprintf_p
, _cprintf_p_l
, _cwprintf_p
, _cwprintf_p_l
_cprintf_s
, _cprintf_s_l
, _cwprintf_s
, _cwprintf_s_l
Parametri posizionali printf_p
fscanf_s
, _fscanf_s_l
, fwscanf_s
, _fwscanf_s_l
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per