더북(TheBook)

Note scanf_s( ) 함수의 경고 메시지 처리 방법

코드를 작성하면 scanf_s() 함수로 작성한 문장에 초록색 줄이 생길 수 있습니다. scanf_s() 함수에 마우스를 가져가면 다음과 같이 ‘unsigned int’가 필요하다는 경고 메시지가 나타납니다.

그림 2-10 scanf_s( ) 함수 사용 시 발생하는 경고 메시지

이는 sizeof 연산자로 알아낸 변수 크기에 해당하는 값의 형태(unsigned __int64)가 기대한 것(unsigned int)과 다르다는 뜻입니다. 경고 메시지가 나와도 프로그램 동작에는 아무런 문제가 없지만, 경고 메시지를 없애고 싶다면 2가지 방법이 있습니다. 먼저 경고문에서 안내하듯이 sizeof 앞에 (unsigned int)를 붙입니다. 이를 형변환이라고 하는데, 7.4.4 어항 물 높이 줄이기에서 다시 설명합니다. 또는, 문자형 변수의 크기인 256을 직접 넣습니다.

scanf_s("%s\n", str, (unsigned int) sizeof(str)); // 형변환
// 또는
scanf_s("%s\n", str, 256); // 문자형 변수 크기 직접 입력

지금까지 변수와 상수의 개념을 배웠습니다. 그리고 scanf_s() 함수로 정수, 문자나 문자열을 입력받아 변수에 저장하고 이를 printf() 함수로 출력하는 방법을 알아봤습니다.

 

 

1분 퀴즈

2. 문자열 2개를 입력받아 출력하는 코드를 작성해 보세요.

정답확인

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.