관리 메뉴

IT창고

C input 본문

프로그래밍/C

C input

방구석여포 2018. 5. 16. 16:02

C언어에서 화면(콘솔)에 글씨 출력하는 함수가 printf라면 입력받는 함수도 있습니다.

대표적으로 scanf , gets, fgets 함수가 있는데 scanf에 대해 알아보겠습니다.


scanf("입력형식", &입력받을장소(공간,변수)); 

입력받을 장소에 &변수명 형식으로 넣어야하는데 변수의 주소 값이라고 볼수있습니다.


입력함수를 사용한다는 것은 화면에서 입력한 내용을 특정 변수에 값을 저장한다는 뜻으로 C언어에서 변수를 저장하려면 그 변수의 주소를 찾아가서 직접 넣어야합니다.


#include <stdio.h>


void main()

{

int iNum = 0;

int iNum1 = 0;

int iNum2 = 0;


printf("숫자입력 : "); 

scanf("%d", &iNum);  // %d이기 때문에 정수입력 %f는 변수에 소수값 입력


  printf("입력한 숫자는 %d 입니다.\n", iNum);


printf("입력할 숫자 2개 를 입력 : ");

scanf("%d %d", &iNum1, &iNum2);

printf("입력된 숫자는 %d와 %d 입니다.\n", iNum1, iNum2);


}




scanf가 사용되면 값을 입력할때 까지 입력대기상태가 된다 즉 다음 코드가 진행되지않습니다.


scanf("%d %d", &iNum1, &iNum2); 코드를 보면 "%d %d"로 되어있는데 "%d , %d"로 해도 상관없습니다 대신 "%d , %d"일 경우 입력할때 ,가 있어야만 합니다. ex) "%d,%d"일 경우 5,7로 입력합니다. 

scanf함수로 입력을 받으면 키보드 버퍼라는 공간에 "5 7"이라는 내용이 문자열로 저장됩니다.

키보드 버퍼는 입력한 내용들이 저장되는 임시공간입니다.



scanf 함수 외에도 gets나 fgets 입력함수가 있는데 이 함수는 보안에 취약하기 때문에 사용하지 않는 편이 좋습니다. 


'프로그래밍 > C' 카테고리의 다른 글

C 반복문 for, while, do~while  (0) 2018.05.18
C 조건문 if, switch  (0) 2018.05.17
C 간단한 연습문제  (0) 2018.05.17
C 연산자  (0) 2018.05.14
C 자료형 , 변수  (0) 2018.05.13
Comments