413236-3158 / 3079-5158
Subaru, Honda, Suzuki, Toyota, Mitsubishi, Nissan

wscanf_s 예제

너비 사양은 %와 형식 필드 지정자 사이의 문자로 구성되며, 여기에는 너비 필드라고 하는 양수 정수와 필드의 크기를 나타내는 하나 이상의 문자가 포함될 수 있으며, 이는 형식의 수정자로 간주될 수도 있습니다. 정수 유형이 짧거나 긴지 여부를 나타내는 표시와 같은 필드입니다. 이러한 문자를 크기 접두사라고 합니다. 예를 들어 10이 필드 너비인 scanf(“%10d”, x)입니다. S 형식 지정기는 함수에서 지원하는 기본 너비 “반대”인 문자 너비를 사용하는 것을 의미합니다. 문자 너비는 단일 바이트이지만 함수는 이중 바이트 문자를 지원합니다. 이 예제에서는 최대 9개의 단일 바이트 너비 문자 문자열로 읽고 이중 바이트 너비 의 문자 버퍼에 넣습니다. 문자는 단일 바이트 값으로 처리됩니다. 처음 두 문자는 ws[0]에 저장되고 두 번째 문자는 ws[1]에 저장됩니다.

scanf()가 있는 문자열을 읽을 때는 항상 %s 형식의 너비를 지정합니다(예: “%s” 대신 “%32s”). 그렇지 않으면 잘못 서포맷된 입력으로 인해 버퍼 오버런이 발생할 수 있습니다. 또는 보안 버전 scanf_s(),_scanf_s_l(), wscanf_s(),_wscanf_s_l() 또는 fgets()를 사용하는 것이 좋습니다. 백분율 기호 다음의 별표(*)는 지정된 형식의 필드로 해석되는 다음 입력 필드의 할당을 억제합니다. 필드는 검색되지만 저장되지 는 않습니다. 예를 들어 scanf_s(“%d”, x, 20)는 x에 대해 20바이트를 예약합니다. 이 예제에서 프로그램은 scanf() 함수를 사용하여 사용자의 입력을 수락합니다. 프로그램은 사용자의 데이터를 읽고 메모리어딘가에 저장합니다(육각 주소로 표시됨)은 표준 출력에 기록합니다. printf() 반대로 표준 출력에 서식있는 데이터를 쓰고, scanf() 표준 입력, 키보드에서 서식있는 데이터를 읽습니다. 성공적으로 변환 및 할당된 필드 수를 반환합니다.

반환 값에는 읽었지만 할당되지 않은 필드는 포함되지 않습니다. 반환 값이 0이면 필드가 할당되지 않음을 나타냅니다. 반환 값은 오류에 대 한 EOF 또는 파일의 끝 문자 또는 문자열의 끝 문자 문자를 읽을 첫 번째 시도에서 발생 하는 경우. 형식이 NULL 포인터인 경우. 실행을 계속할 수 있는 경우 scanf_s() 및 wscanf_s() EOF를 반환하고 errno를 EINVAL로 설정합니다. scanf 및 wscanf와 달리 scanf_s 및 wscanf_s는 일부 매개 변수에 대한 버퍼 크기를 지정해야 합니다. 모든 c, C, s, S 또는 문자열 컨트롤 집합 [] 매개 변수에 대한 크기를 지정합니다. 문자의 버퍼 크기는 추가 매개 변수로 전달됩니다. 버퍼 또는 변수에 대한 포인터를 바로 따릅니다.

예를 들어 문자열을 읽는 경우 해당 문자열의 버퍼 크기는 다음과 같이 전달됩니다. 다음 예제에서 너비 사양은 20이며 입력 스트림에서 최대 20자까지 읽을 수 있음을 나타냅니다. 버퍼 길이는 21이며, 여기에는 가능한 20자및 null 종단자에 대한 공간이 포함됩니다: 버퍼 크기 매개변수는 바이트가 아닌 최대 문자 수를 설명합니다.

Comments are closed.