Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프로젝트 목록 제거
- 극장 예약 프로그램
- Axes
- 난수 값 맞추기 게임
- 문자 분류
- Unity
- 전처리기 정의
- 키입력값 받기
- 미리 컴파일된 헤더 사용안함
- 유니티허브
- 배열 사용X
- C언어
- C 언어
- Logic Gates
- 반사 벡터
- 두 값 교체하기
- 개인 정리
- 소스코드 하이라이팅
- ASCII CODE TABLE
- 두 수 크기 비교 함수
- 유니티
- round()함수
- time.h
- 2차원 배열
- 논리 게이트
- 기호 상수
- GetAxis()메서드
- AWS Discovery Book
- scanf 오류
- UnityHub
Archives
- Today
- Total
flrto
scanf 사용시 _CRT_SECURE_NO_WARNINGS 미정의 문제 본문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <stdio.h>
int main()
{
int sum = 0;
int x = 0;
int y = 0;
printf("첫번째 수를 입력하시오 : \n");
scanf("%d", &x);
printf("두번째 수를 입력하시오 : \n");
scanf("%d", &y);
sum = x + y;
printf("두 수의 합은 : %d", sum);
return 0;
}
|
다음과 같은 예제에서 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.
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(1274): note: 'scanf' 선언을 참조하십시오.
라고 하는데 scanf의 경우 버퍼 오버플로우의 위험이 있기 떄문에 다음과 같은 오류가 된다.
오류를 해결 하려면
1. 프로젝트 속성에서 전처리기 정의에서 _CRT_SECURE_NO_WARNINGS 를 정의 해준다.
2. 코드상에 #define으로 _CRT_SECURE_NO_WARNINGS 를 정의해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int sum = 0;
int x = 0;
int y = 0;
printf("첫번째 수를 입력하시오 : \n");
scanf("%d", &x);
printf("두번째 수를 입력하시오 : \n");
scanf("%d", &y);
sum = x + y;
printf("두 수의 합은 : %d", sum);
return 0;
}
|
3. 버퍼 오버플로우의 위험성이 있는 scanf 대신 scanf_s를 사용한다.
scanf_s("%타입", sizeof(x)); 등..
'C > Academy' 카테고리의 다른 글
ASCII CODE TABLE 아스키 코드 (0) | 2019.06.11 |
---|---|
자료형 오버플로우 short, int, long (0) | 2019.06.11 |
C 언어에서 두 값 교체하기 소스 (0) | 2019.06.10 |
Visual Studio 디버깅 관련 단축키, 들여쓰기 단축키 (0) | 2019.06.07 |
미리 컴파일된 헤더를 찾는 동안 예기치 않은 파일의 끝이 나타났습니다 해결 (0) | 2019.06.07 |
Comments