Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

Datos con formato lectura de una secuencia. Éstas son versiones de fscanf, _fscanf_l, fwscanf, _fwscanf_l con mejoras de seguridad como se describe en Características de seguridad en CRT.

int fscanf_s( 
   FILE *stream,
   const char *format [,
   argument ]... 
);
int _fscanf_s_l( 
   FILE *stream,
   const char *format,
   locale_t locale [,
   argument ]... 
);
int fwscanf_s( 
   FILE *stream,
   const wchar_t *format [,
   argument ]... 
);
int _fwscanf_s_l( 
   FILE *stream,
   const wchar_t *format,
   locale_t locale [,
   argument ]... 
);

stream

puntero a la estructura de FILE .

format

cadena de la Formato-CONTROL.

argument

argumentos opcionales.

locale

la configuración regional a utilizar.

Cada una de estas funciones devuelve el número de campos convierten y asignados correctamente; el valor devuelto no incluye los campos que se leyeron pero no asignados. Devuelve un valor de 0 indica que no se asignó ningún campos. Si se produce un error, o si el final de la secuencia de archivo se logra antes de la primera conversión, el valor devuelto es EOF para fscanf_s y fwscanf_s.

estas funciones validan sus parámetros. Si la secuencia está ese puntero de nvalid de ian, o format es un puntero NULL, estas funciones se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones EOF return y errno determinado a EINVAL.

La función de fscanf_s lee datos de la posición actual de stream en las ubicaciones especificadas por argument (si existe). Cada argument debe ser un puntero a una variable de un tipo que se corresponda con un especificador de tipo en format. format controla la interpretación de los campos de entrada y tiene el mismo formato y función que el argumento de format para scanf_s; vea Campos de la especificación de formato – scanf funciona y el wscanf funciona para obtener una descripción de format.fwscanf_s es una versión con caracteres anchos de fscanf_s; el argumento de formato afwscanf_s es una cadena de caracteres. Estas funciones se comportan exactamente igual si la secuencia se abre en el modo de ANSI. fscanf_s no admite actualmente la entrada de una secuencia de UNICODE.

La diferencia principal entre funciones seguras (con el sufijo de _s) y las más antiguas funciones es que las funciones seguras requieren el tamaño en caracteres de cada c, C, s, Sy [ escribe el campo que se pasa como argumento inmediatamente después de la variable. Para obtener más información, vea scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l y especificación de ancho scanf.

Nota Nota

El parámetro size es de unsignedtipo, no size_t.

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

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_ftscanf_s

fscanf_s

fscanf_s

fwscanf_s

_ftscanf_s_l

_fscanf_s_l

_fscanf_s_l

_fwscanf_s_l

Función

Encabezado necesario

fscanf_s , _fscanf_s_l

<stdio.h>

fwscanf_s , _fwscanf_s_l

<stdio.h> o <wchar.h>

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

// crt_fscanf_s.c
// This program writes formatted
// data to a file. It then uses fscanf to
// read the various data back from the file.
 
#include <stdio.h>
#include <stdlib.h>

FILE *stream;

int main( void )
{
   long l;
   float fp;
   char s[81];
   char c;

   errno_t err = fopen_s( &stream, "fscanf.out", "w+" );
   if( err )
      printf_s( "The file fscanf.out was not opened\n" );
   else
   {
      fprintf_s( stream, "%s %ld %f%c", "a-string", 
               65000, 3.14159, 'x' );
      // Set pointer to beginning of file:
      fseek( stream, 0L, SEEK_SET );

      // Read data back from file:
      fscanf_s( stream, "%s", s, _countof(s) );
      fscanf_s( stream, "%ld", &l );

      fscanf_s( stream, "%f", &fp );
      fscanf_s( stream, "%c", &c, 1 );

      // Output data read:
      printf( "%s\n", s );
      printf( "%ld\n", l );
      printf( "%f\n", fp );
      printf( "%c\n", c );

      fclose( stream );
   }
}
uno-cadena
65000
3.141590
x

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft