fscanf, _fscanf_l, fwscanf, _fwscanf_l
Datos con formato lectura de una secuencia.Versiones más seguras de estas funciones están disponibles; vea fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l.
int fscanf(
FILE *stream,
const char *format [,
argument ]...
);
int _fscanf_l(
FILE *stream,
const char *format,
locale_t locale [,
argument ]...
);
int fwscanf(
FILE *stream,
const wchar_t *format [,
argument ]...
);
int _fwscanf_l(
FILE *stream,
const wchar_t *format,
locale_t locale [,
argument ]...
);
Parámetros
stream
puntero a la estructura de FILE .format
cadena de la Formato-CONTROL.argument
argumentos opcionales.locale
la configuración regional a utilizar.
Valor devuelto
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 y fwscanf.
estas funciones validan sus parámetros.Si stream o format es un puntero NULL, 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.
Comentarios
La función de fscanf 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; vea scanf para obtener una descripción de format*.*
fwscanf es una versión con caracteres anchos de fscanf; el argumento de formato a fwscanf es una cadena de caracteres.Estas funciones se comportan exactamente igual idénticamente si la secuencia se abre en el modo de ANSI.fscanf no admite actualmente la entrada de una secuencia de UNICODE.
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 |
fscanf |
fscanf |
fwscanf |
_ftscanf_l |
_fscanf_l |
_fscanf_l |
_fwscanf_l |
Para obtener más información, vea Campos de la especificación de formato – scanf funciona y el wscanf funciona.
Requisitos
Función |
Encabezado necesario |
---|---|
fscanf, _fscanf_l |
<stdio.h> |
fwscanf, _fwscanf_l |
<stdio.h> o <wchar.h> |
Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
// crt_fscanf.c
// compile with: /W3
// This program writes formatted
// data to a file. It then uses fscanf to
// read the various data back from the file.
#include <stdio.h>
FILE *stream;
int main( void )
{
long l;
float fp;
char s[81];
char c;
if( fopen_s( &stream, "fscanf.out", "w+" ) != 0 )
printf( "The file fscanf.out was not opened\n" );
else
{
fprintf( stream, "%s %ld %f%c", "a-string",
65000, 3.14159, 'x' );
// Security caution!
// Beware loading data from a file without confirming its size,
// as it may lead to a buffer overrun situation.
// Set pointer to beginning of file:
fseek( stream, 0L, SEEK_SET );
// Read data back from file:
fscanf( stream, "%s", s ); // C4996
fscanf( stream, "%ld", &l ); // C4996
fscanf( stream, "%f", &fp ); // C4996
fscanf( stream, "%c", &c ); // C4996
// Note: fscanf is deprecated; consider using fscanf_s instead
// Output data read:
printf( "%s\n", s );
printf( "%ld\n", l );
printf( "%f\n", fp );
printf( "%c\n", c );
fclose( stream );
}
}
Equivalente en .NET Framework
System:: IO:: StreamReader:: ReadLine. Vea también los métodos de Parse , como System:: doble:: análisis.
Vea también
Referencia
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_l