fscanf, _fscanf_l, fwscanf, _fwscanf_lfscanf, _fscanf_l, fwscanf, _fwscanf_l

스트림에서 형식 지정된 데이터를 읽습니다.Read formatted data from a stream. 이러한 함수의 더 안전한 버전을 사용할 수 있습니다. fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l을 참조하세요.More secure versions of these functions are available; see fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l.

구문Syntax

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 ]...
);

매개 변수Parameters

streamstream
FILE 구조체에 대한 포인터입니다.Pointer to FILE structure.

formatformat
형식 컨트롤 문자열입니다.Format-control string.

argumentargument
선택적 인수입니다.Optional arguments.

localelocale
사용할 로캘입니다.The locale to use.

반환 값Return Value

이러한 각 함수는 모두 성공적으로 변환되고 할당된 필드 수를 반환합니다. 이때 읽혀졌지만 할당되지 않은 필드는 반환 값에 포함되지 않습니다.Each of these functions returns the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. 반환 값이 0이면 할당된 필드가 없음을 나타냅니다.A return value of 0 indicates that no fields were assigned. 오류가 발생 하거나 첫 번째 변환 전에 파일 스트림의 끝에 도달 하는 경우 반환 값은 fscanffwscanf에 대 한 EOF 입니다.If an error occurs, or if the end of the file stream is reached before the first conversion, the return value is EOF for fscanf and fwscanf.

이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다.These functions validate their parameters. Stream 또는 format 이 Null 포인터인 경우 매개 변수 유효성 검사에 설명 된 대로 잘못 된 매개 변수 처리기가 호출 됩니다.If stream or format is a null pointer, the invalid parameter handler is invoked, as described in Parameter Validation. 계속 해 서 실행 하도록 허용한 경우 이러한 함수는 EOF 를 반환 하 고 errnoEINVAL로 설정 합니다.If execution is allowed to continue, these functions return EOF and set errno to EINVAL.

설명Remarks

Fscanf 함수는 스트림의 현재 위치에서 인수 (있는 경우)로 지정 된 위치로 데이터를 읽습니다.The fscanf function reads data from the current position of stream into the locations given by argument (if any). 인수형식의 형식지정자에 해당 하는 형식의 변수에 대 한 포인터 여야 합니다.Each argument must be a pointer to a variable of a type that corresponds to a type specifier in format. format 은 입력 필드의 해석을 제어 하 고 scanf에 대 한 format 인수와 동일한 양식 및 기능을 포함 합니다. 형식에 대 한 설명은 scanf 를 참조 하세요.format controls the interpretation of the input fields and has the same form and function as the format argument for scanf; see scanf for a description of format.

fwscanffscanf의 와이드 문자 버전입니다. fwscanf 에 대 한 format 인수는 와이드 문자열입니다.fwscanf is a wide-character version of fscanf; the format argument to fwscanf is a wide-character string. 스트림이 ANSI 모드에서 열리는 경우 이러한 함수는 동일하게 작동합니다.These functions behave identically if the stream is opened in ANSI mode. fscanf 는 현재 유니코드 스트림의 입력을 지원 하지 않습니다.fscanf doesn't currently support input from a UNICODE stream.

_L 접미사가 있는 이러한 함수 버전은 현재 스레드 로캘 대신 전달 된 로캘 매개 변수를 사용 하는 경우를 제외 하 고는 동일 합니다.The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

제네릭 텍스트 루틴 매핑Generic-Text Routine Mappings

TCHAR.H 루틴TCHAR.H routine _UNICODE 및 _MBCS 정의되지 않음_UNICODE & _MBCS not defined _MBCS 정의됨_MBCS defined _UNICODE 정의됨_UNICODE defined
_ftscanf_ftscanf fscanffscanf fscanffscanf fwscanffwscanf
_ftscanf_l_ftscanf_l _fscanf_l_fscanf_l _fscanf_l_fscanf_l _fwscanf_l_fwscanf_l

자세한 내용은 형식 사양 필드-scanf 함수 및 Wscanf 함수를 참조 하세요.For more information, see Format Specification Fields - scanf functions and wscanf Functions.

요구 사항Requirements

기능Function 필수 헤더Required header
fscanf, _fscanf_lfscanf, _fscanf_l <stdio.h><stdio.h>
fwscanf, _fwscanf_lfwscanf, _fwscanf_l <stdio.h> 또는 <wchar.h><stdio.h> or <wchar.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.For additional compatibility information, see Compatibility.

예제Example

// 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

참고자료See also

스트림 I/OStream I/O
_cscanf, _cscanf_l, _cwscanf, _cwscanf_l_cscanf, _cscanf_l, _cwscanf, _cwscanf_l
fprintf, _fprintf_l, fwprintf, _fwprintf_lfprintf, _fprintf_l, fwprintf, _fwprintf_l
scanf, _scanf_l, wscanf, _wscanf_lscanf, _scanf_l, wscanf, _wscanf_l
sscanf, _sscanf_l, swscanf, _swscanf_lsscanf, _sscanf_l, swscanf, _swscanf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_lfscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l