Nagie's DevStory
[C] 11. 사용자 입력 받기 본문
728x90
앞서 C를 처음 배웠을 때 'HelloWorld'를 출력했다.
출력을 했다면 그와 반대되는 개념인 입력도 가능하다.
C 표준에 입력받는 함수가 여러 개 있긴 하지만 대표적으로 하나를 꼽자면 scanf이다.
scanf으로 여러 종류의 포맷을 받아올 수 있다.
<버퍼 오버플로우 문제가 있어 지금은 scanf_s로 사용하는 게 안전하다.>
사용법은 아래와 같다.
#include <stdio.h>
int main () {
int nData = 0;
scanf_s("%d",&nData);
}
printf(); 와 다른 점은 변수를 사용할 때 앞에 & (주소 연산자)를 사용한다는 것인데
이건 포인터와 연관되어 있어 다소 설명이 어렵다.
그리고 문자를 받을 때 변수가 아닌 배열을 사용해 문자열을 받게 된다면 & (주소 연산자)를 사용하지 않는다.
차차 공부하겠지만 배열이 곧 포인터기 때문이다.
문자열 배열 사용 예시는 아래와 같다.
#include <stdio.h>
int main () {
char sStr[10] = { '\0' , } ;
scanf_s("%s" , sStr , 10);
}
또는
#include <stdio.h>
int main() {
char sStr[10] = { '\0' , };
scanf_s("%s", sStr, (unsigned int)sizeof(sStr));
}
문자열 같은 데이터를 받을때 scanf_s();를 사용 시 꼭 버퍼 사이즈를 넘겨줘야 한다.
728x90
Comments