상세 컨텐츠

본문 제목

C언어) scanf_s로 문자형 받을 때 발생하는 오류

개발이야기/C or C++ 언어 관련

by mycatdid0 2022. 10. 14. 15:37

본문

반응형

(포스팅 2022.10.14)

 

scanf_s()에서 char형 (%c)를 받을 때 에러가 나는 경우를 포스팅합니다.

 

VisualStudio에서 C언어 사용시, scanf() 보다는 scanf_s()를 추천하고 있습니다.

 

아래는 VisualStudio에서 scanf() 사용시 발생하는 빌드에러입니다.

scanf() 사용시 빌드 에러

 

scanf() 대신 scanf_s() 를 사용하면 됩니다.
이 때, scanf_s() 로 문자열을 받을 시 주의점이 있습니다. 문자열 저장장소의 길이를 알려주어야 합니다.

문자열(char[]) 뿐 아니라 1byte문자(char)도 동일합니다.

 

	scanf_s("%d", &i);
	scanf_s("%c", &c, (int)sizeof(c));     // char의 경우에도 변수 길이를 넣어주어야 함.
	scanf_s("%s", str, (int)sizeof(str));  // 문자열의 경우 변수 길이를 넣어주어야 함.

 

scanf_s()에서 char입력을 받을때, 변수길이를 입력하지 않으면 경고가 발생합니다. 이 경고를 무시하고 빌드하여 실행할 시, 프로그램이 강제 종료되는 등 오류가 발행하니 유의 바랍니다.

 

포스팅은 여기까지입니다.

언제나 감사드립니다.

반응형

관련글 더보기

댓글 영역