반응형
scanf 에러 발생(C4996)
오류 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Project2 C:\Project2\Project2\FileName.c 8
에러 해결 방법
에러를 읽어보면 scanf 함수는 더 이상 안전성을 보장하지 않아서 scanf_s 함수를 사용하라고 한다.
따라서 scanf 함수 대신 scanf_s 함수를 사용하면 에러가 안뜨게 된다.
만약 scanf 함수를 강제로 사용 하고 싶다면 아래를 읽으면 된다.
scanf 함수 예시 코드
scanf 함수 때문에 에러 발생하는 예제 코드다.
이제 scanf를 강제로 사용하는 방법 2가지를 알아보자.
#include <stdio.h>
int main()
{
char input[16];
printf("문자 입력 : ");
scanf("%s", input);
printf("%s\n", input);
return 0;
}
첫 번째 방법. SDL 검사 끄기
첫 번째 방법은 SDL 검사를 끄면 된다.
속성 -> C/C++ -> 일반 -> SDL 검사 아니요
이제 다시 코드를 실행 시켜보면 잘 실행 된다.
두 번째 방법. 전처리기 추가하기
두 번째 방법은 아래와 같이 main 함수 위에 전처리기 3줄을 선언해 주면 된다.
아래 코드 추가 해주고 실행 시켜보면 잘된다.
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
마치며
처음에 말했던 것 처럼 scaf_s 함수 사용을 권장한다.
웬만하면 scanf, gets 함수 사용을 자제하자.
반응형
'C 언어' 카테고리의 다른 글
[C언어 강좌] 2. visual studio 설치 및 프로젝트 생성 (0) | 2024.08.10 |
---|---|
[C언어 강좌] 1. C언어 란? (0) | 2024.08.10 |
[C언어] 최대값 최소값 찾기 예제 (0) | 2024.05.07 |
[C언어] 버퍼 오버플로우(Buffer overflow) 예방법/ 스택 버퍼 오버플로우/ 힙 버퍼 오버플로우 (1) | 2024.02.24 |
[C언어] 문자열 입력 하기(scanf_s, scanf, gets) (0) | 2024.02.10 |