visual studio scanf 오류 (비주얼스튜디오 2019)

반응형

visual studio scanf 오류

두 정수를 받아 합치는 프로그램을 작성한다고하자.

 

#include 

int main(void) {

int i;
int j;

printf("정수 하나와 실수 하나를 입력하세요\n");
scanf("%d %d", &i, &j);
printf("\n");
printf("변수i에 %d가 저장 되었습니다.\n", i);
printf("변수j에 %d가 저장 되었습니다.\n", j);

printf("두 변수 i와 j를 더하면 %d 입니다.\n", i + j);

return 0;
}

 

%d는 부호있는 10진수 정수를 받는 명령어다.

 

이 코드는 필자가 2011년에 visual studio 2010으로 작성하였다.

그러나 어느순간 2012년부터나온 2012버전에서 scanf 기능을 쓰면 오류가 낫다.

 

scanf기능때문에 코드가 동작하지않는다.

 

이럴땐 scanf_s로 변경해주면 코드가 정상적으로 돌아간다.

만약 본인의 프로그래밍 서적이 scanf로 작성되어있는데

동작하지않으면 scanf_s로 변경하자

고지식한 교수님들은 7년이 지난 아직도 모르는 분이 계신다..

(어떻게 교수가...ㄷㄷ)

 

#include 

int main(void) {

int i;
int j;

printf("정수 하나와 실수 하나를 입력하세요\n");
scanf_s("%d %d", &i, &j);  //<-변경한 부분
printf("\n");
printf("변수i에 %d가 저장 되었습니다.\n", i);
printf("변수j에 %d가 저장 되었습니다.\n", j);

printf("두 변수 i와 j를 더하면 %d 입니다.\n", i + j);

return 0;
}

 

빌드문구는 정상이다.

cmd 창에서 테스르를 해보자.

 

정상작동 완료.

댓글

Designed by JB FACTORY