Compartir a través de


fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

Datos con formato imprime en una secuencia. Estas versiones de fprintf, _fprintf_l, fwprintf, _fwprintf_l tienen mejoras de seguridad, como se describe en Características de seguridad de CRT.

int fprintf_s( 
   FILE *stream,
   const char *format [,
   argument ]...
);
int _fprintf_s_l( 
   FILE *stream,
   const char *format,
   locale_t locale [,
   argument ]...
);
int fwprintf_s( 
   FILE *stream,
   const wchar_t *format [,
   argument ]...
);
int _fwprintf_s_l( 
   FILE *stream,
   const wchar_t *format,
   locale_t locale [,
   argument ]…
);

Parámetros

  • stream
    Puntero a la estructura FILE.

  • format
    Cadena de control de formato.

  • argument
    Argumentos opcionales.

  • locale
    Configuración regional que se va a usar.

Valor devuelto

fprintf_s devuelve el número de bytes escritos. fwprintf_s devuelve el número de caracteres anchos escritos. Cada una de estas funciones devuelve un valor negativo en su lugar a un error de salida aparece.

Comentarios

fprintf_s da formato y imprime una serie de caracteres y valores al resultado stream. Cada función argument (si existe) se convierte y salida según la especificación correspondiente de formato en format. Para fprintf_s, el argumento de format tiene la misma sintaxis y uso que tiene en printf_s.

fwprintf_s es una versión con caracteres anchos de fprintf_s; en fwprintf_s, format es una cadena de caracteres. Estas funciones se comportan igual si el flujo se abre en modo ANSI. fprintf_s no admite actualmente la salida en un flujo UNICODE.

Las versiones de estas funciones con el sufijo _l son idénticas salvo que usan el parámetro locale pasado en lugar de la configuración regional actual.

Nota de seguridadNota sobre la seguridad

Asegúrese de que format no es una cadena definida por el usuario.

Como las versiones de no Secure (vea fprintf, _fprintf_l, fwprintf, _fwprintf_l), estas funciones validan sus parámetros y se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros, si stream o format es un puntero NULL. Estas funciones se diferencian de las versiones de no Secure en que la cadena de formato propio también se van a validar. Si hay algún desconocido o formado mal dando formato especificadores, estas funciones representan la excepción no válida del parámetro. En todos los casos, si la ejecución puede continuar, las funciones devuelven -1 y establecen errno en EINVAL. Vea _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de error.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_ftprintf_s

fprintf_s

fprintf_s

fwprintf_s

_ftprintf_s_l

_fprintf_s_l

_fprintf_s_l

_fwprintf_s_l

Para obtener más información, vea Especificaciones de formato.

Requisitos

Función

Encabezado necesario

fprintf_s, _fprintf_s_l

<stdio.h>

fwprintf_s, _fwprintf_s_l

<stdio.h> o <wchar.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

// crt_fprintf_s.c
// This program uses fprintf_s to format various
// data and print it to the file named FPRINTF_S.OUT. It
// then displays FPRINTF_S.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_s.out", "w" );
   fprintf_s( stream, "%s%c", s, c );
   fprintf_s( stream, "%d\n", i );
   fprintf_s( stream, "%f\n", fp );
   fclose( stream );
   system( "type fprintf_s.out" );
}
  

Equivalente en .NET Framework

System::IO::StreamWriter::Write

Vea también

Referencia

E/S de secuencia

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

fscanf, _fscanf_l, fwscanf, _fwscanf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l