본문 바로가기
Study/C언어

C언어 - scanf_s의 사용법과 예제

by 멘탈은안녕하신가 2018. 12. 13.
728x90
반응형
  • 요즘엔 scanf의 사용을 금지하는 컴파일러가 많다(오류를 뿜뿜한다던가...).
  • 보안상의 문제가 많다고 하니 scanf_s를 사용하길 권장한다.
    • scanf_s는 scanf와 사용방법이 많이 다르지 않다.
    • scanf_s에서는 scanf에서 아래와 같이 뒤쪽에 변수의 길이만 추가해주면 된다.
      • scanf_s("서식문자 및 문자열", {변수}, {변수의 길이})
      • 예) scanf_s("%s",a,sizeof(a));
    • 사용 예)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main(void )
{
    char a[7];
    int i=0;
    printf"입력할 값은? : " );
    scanf_s( "%s",a,sizeof (a));
    /*
    1. scanf_s의 사용법 scanf_s("타입에 맞는 서식문자", 입력할 변수, 변수의 크기)
    2. 배열이기 때문에 &를 써주지 않음.
    */
 
    printf"입력된 값은? : %s \n" , a);
    printf"첫번째와 두번째의 합은 : %d\n" ,((a[0]-48)+(a[1])-48));
 
    for (i = 0;i < 6;i++)
    {
            printf"%d번째는 %d\n" ,(i+1), (a[i]-48));
    }
    return 0;
 
}
cs

 

  • 길이를 추가한걸 보니 입력 된 값을 사용할 때 길이가 명시되어있지 않아 오류를 뿜뿜하는걸까??

 

728x90
반응형

댓글