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
반응형
'Study > C언어' 카테고리의 다른 글
C언어 - sacnf의 &(주소연산자) (0) | 2018.12.17 |
---|---|
C언어 - int로 선언한 변수에 입력한 값을 char로 출력 할 경우 오류가 나는 이유. (0) | 2018.12.17 |
C언어 - 배열과 스택, 버퍼 오버플로우 (0) | 2018.12.17 |
C언어 - 정수형의 크기 (0) | 2018.12.10 |
C언어 - const의 포인터 이용 (0) | 2018.12.10 |
댓글