sscanf_s 예제

참고: sscanf_s()는 Microsoft 비주얼 스튜디오에서만 작동합니다. 다음 예제에서는 sscanf() 함수의 사용을 보여 주십니다. 스프린트프의 상대 또는 “반대”는 스캔입니다. 문자열을 보고 형식 지정자가 있는 다른 문자열에 따라 값을 추출합니다. 그런 다음 해당 인수에 추출한 값을 배치합니다. 인수는 변수이거나 값을 할당할 수 있는 다른 것들이어야 합니다. 예를 들어 다음 코드 세그먼트 다음에 변수 f에는 -3.6이 포함되고 변수 i에는 17이 포함됩니다: swscanf_s는 sscanf_s의 와이드 문자 버전입니다. swscanf_s에 대한 인수는 와이드 문자 문자열입니다. sscanf_s는 멀티바이트 헥사데피말 문자를 처리하지 않습니다. swscanf_s유니코드 전체 너비 헥사데피말 또는 “호환성 영역” 문자를 처리하지 않습니다. 그렇지 않으면 swcanf_s와 sscanf_s가 동일하게 작동합니다. 이 예제에서는 입력 문자열에서 단일 문자를 읽고 와이드 문자 버퍼에 저장 합니다.

null이 아닌 종료된 문자열에 대해 여러 문자를 읽을 때 부호없는 정수는 너비 사양 및 버퍼 크기로 사용됩니다. sscanf_s 함수는 버퍼에서 각 인수에 의해 주어진 위치로 데이터를 읽습니다. 형식 문자열 다음의 인수는 형식의 형식 지정자에 해당하는 형식이 있는 변수에 대한 포인터를 지정합니다. 보안 수준이 적은 버전 스캔과 달리 []에 동봉된 형식 필드 문자 c, C, s, S 또는 문자열 컨트롤 집합을 사용할 때 버퍼 크기 매개 변수가 필요합니다. 문자의 버퍼 크기는 필요한 각 버퍼 매개 변수 바로 후에 추가 매개 변수로 제공되어야 합니다. 예를 들어 문자열로 읽는 경우 해당 문자열의 버퍼 크기는 다음과 같이 전달됩니다. . 집합의 첫 번째 문자가 ^이면 집합에 없는 모든 문자가 일치합니다. 집합이 ] 또는 ^]으로 시작하면] 문자도 집합에 포함됩니다. [0-9]에서와 같이, 스캔셋내의 비초기 위치에서 문자가 범위를 나타낼 수 있는지 여부를 구현정의한다. 너비 지정기를 사용하는 경우 너비까지만 일치합니다.

항상 일치하는 문자 외에 null 문자를 저장합니다 (그래서 인수 배열은 적어도 너비 + 1 문자에 대한 공간이 있어야합니다) 이것은 데이터가 스트림에서 읽을 수 있지만 무시됨을 나타내는 선택적 시작 별표입니다. 해당 인수에 저장됩니다. 해당 추가 인수로 가리키는 데이터에 대해 int(d, i 및 n의 경우), 서명되지 않은 int(o, you 및 x의 경우) 또는 float(e, f 및 g의 경우)와 다른 크기를 지정합니다. , i 및 n) 또는 서명되지 않은 짧은 int (O, 당신과 x) l : 긴 int (d, i 및 n의 경우), 또는 서명되지 않은 긴 int (o, you 및 x) 또는 더블 (e, f 및 g) L : 긴 더블 (e, f 및 g) 다른 인수 – 이 함수는 포인터의 시퀀스를 기대합니다. 추가 인수는 각각 형식 문자열 내에서 해당 %-tag에 의해 지정된 형식의 개체를 동일한 순서로 가리킵니다. 데이터를 검색하는 형식 문자열의 각 형식 지정자에 대해 추가 인수를 지정해야 합니다. 일반 변수에 sscanf 작업의 결과를 저장하려면 참조 연산자( 즉, ampersand sign(&amp)와 함께 식별자 앞에 와야 합니다. sscanf (str,”%d”,&n); 변환 지정자 %f로 “100er”를 구문 분석하는 것과 같이 숫자가 없는 지수에서 끝나는 불완전한 부동 소수점 값을 구문 분석할 때 시퀀스 “100e”(유효한 부동 소수점 번호의 가장 긴 접두사)가 사용되어 일치하는 오류(사용된 시퀀스를 부동 소수점 번호로 변환할 수 없음) “r”이 남아 있습니다.

This entry was posted by in Uncategorized.