wscanf_s 예제

wscanf_s 예제

백분율 기호 다음의 별표(*)는 지정된 형식의 필드로 해석되는 다음 입력 필드의 할당을 억제합니다. 필드는 검색되지만 저장되지 는 않습니다. 예를 들어 scanf_s(“%d”, x, 20)는 x에 대해 20바이트를 예약합니다. 가장 간단한 형식 사양에는 백분율 부호와 형식 문자(예: %s)만 포함됩니다. 퍼센트 기호(%) 다음에 는 형식 제어 문자로 의미가 없는 문자, 해당 문자 및 다음 문자(다음 백분율 기호까지)는 입력과 일치해야 하는 문자 시퀀스인 일반 문자 시퀀스로 처리됩니다. 예를 들어 백분율 기호 문자를 입력하도록 지정하려면 %%를 사용합니다. 버퍼 크기 매개 변수는 바이트가 아닌 최대 문자 수를 설명합니다. 이 예제에서는 버퍼 형식의 너비가 형식 지정자의 너비와 일치하지 않습니다. scanf()가 있는 문자열을 읽을 때는 항상 %s 형식의 너비를 지정합니다(예: “%s” 대신 “%32s”). 그렇지 않으면 잘못 서포맷된 입력으로 인해 버퍼 오버런이 발생할 수 있습니다.

또는 보안 버전 scanf_s(),_scanf_s_l(), wscanf_s(),_wscanf_s_l() 또는 fgets()를 사용하는 것이 좋습니다. 이 예제에서 프로그램은 scanf() 함수를 사용하여 사용자의 입력을 수락합니다. 프로그램은 사용자의 데이터를 읽고 메모리어딘가에 저장합니다(육각 주소로 표시됨)은 표준 출력에 기록합니다. printf() 반대로 표준 출력에 서식있는 데이터를 쓰고, scanf() 표준 입력, 키보드에서 서식있는 데이터를 읽습니다. 또는 wscanf_s(),_wscanf_s_l() S 형식 지정자는 함수에서 지원하는 기본 너비 “반대”인 문자 너비를 사용하는 것을 의미합니다. 문자 너비는 단일 바이트이지만 함수는 이중 바이트 문자를 지원합니다. 이 예제에서는 최대 9개의 단일 바이트 너비 문자 문자열로 읽고 이중 바이트 너비 의 문자 버퍼에 넣습니다. 문자는 단일 바이트 값으로 처리됩니다. 처음 두 문자는 ws[0]에 저장되고 두 번째 문자는 ws[1]에 저장됩니다.

너비 사양은 %와 형식 필드 지정자 사이의 문자로 구성되며, 여기에는 너비 필드라고 하는 양수 정수와 필드의 크기를 나타내는 하나 이상의 문자가 포함될 수 있으며, 이는 형식의 수정자로 간주될 수도 있습니다. 정수 유형이 짧거나 긴지 여부를 나타내는 표시와 같은 필드입니다.