fscanf, _fscanf_l, fwscanf, _fwscanf_l
Leitura formatado dados de um fluxo.Versões mais seguras dessas funções estão disponível; consulte 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
Ponteiro para FILE estrutura.format
Seqüência de caracteres de controle de formato.argument
Argumentos opcionais.locale
A localidade para usar.
Valor de retorno
Cada uma dessas funções retornará o número de campos convertido com êxito e atribuídos; o valor retornado não inclui campos que foram lidos, mas não atribuídos.Um valor retornado 0 indica que nenhum campo foi atribuído.Se ocorrer um erro, ou se o participante do fluxo de arquivo for atingido antes da conversão primeira, o valor retornado é EOF para fscanf e fwscanf.
Essas funções validar seus parâmetros.If stream ou format é um ponteiro nulo, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam EOF e conjunto errno para EINVAL.
Comentários
The fscanf função lê dados de posição corrente do stream em locais fornecidos pelo argument (se houver). Cada argument deve ser um ponteiro para uma variável de tipo que corresponde a um especificador de tipo em format. format Controla a interpretação da entrada campos e tem o mesmo formulário e funcionar sistema autônomo o format argumento para scanf; Consulte scanf para obter uma descrição de format*.*
fwscanf é uma versão de caractere largo da fscanf; o argumento formato fwscanf é uma seqüência de caracteres largos. Essas funções tenham comportamento idêntico idêntico se o fluxo é aberto no modo ANSI.fscanf atualmente não oferece suporte a entrada de um fluxo UNICODE.
As versões dessas funções com o _l sufixo são idênticas exceto que usarem o parâmetro de localidade passado em vez da localidade do thread corrente.
Mapeamentos de rotina de texto genérica
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_ftscanf |
fscanf |
fscanf |
fwscanf |
_ftscanf_l |
_fscanf_l |
_fscanf_l |
_fwscanf_l |
Para obter mais informações, consulte Especificação de formatar campos – scanf funções e funções wscanf.
Requisitos
Função |
Cabeçalho necessário |
---|---|
fscanf, _fscanf_l |
<stdio.h> |
fwscanf, _fwscanf_l |
<stdio.h> ou <wchar.h> |
Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.
Exemplo
// 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 );
}
}
a-string 65000 3.141590 x
Equivalente do NET Framework
sistema::IO::StreamReader::ReadLine. Consulte também Parse métodos, sistema autônomo sistema::Double::Parse.
Consulte também
Referência
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_l