본문 바로가기

Moomyung/Scribble

scanf_s( ) 함수에 대해서

지금까지 scanf_s( ) 함수는 scanf( ) 함수와 동일하게 사용하면 된다고 생각했다. 


알고보니 scanf_s( ) 함수를 scanf( ) 함수와 동일하게 사용하는 경우 문자, 문자열을 집어 넣으면 정상적으로 들어가지 않는 문제가 발생한다고 한다. 


여태 숫자만 집어넣어서 알아차리지 못했던 것 같음.. 



해결방법은 


scanf_s("%s", &szString, sizeof(szString)); 과 같이 전달해준 매개변수의 크기를 같이 전달해주면 된다.


물론 정수를 집어넣을 때에 이러한 문제가 발생하지는 않지만, size를 매개변수를 통해 반드시 넣어줘야겠다. 



다시 해보니 정수를 집어넣을 때 sizeof 를 사용해 크기를 주면 인수가 많다고 한다;; 

알아서 잘 구분해야지.. ㅋ