본문 바로가기

프로그래밍 -----------------------/C,C++ 기초

12. C에서 키보드 입력받는 방법 scanf() - 표준입력



12. C에서 키보드 입력받는 방법 scanf() - 표준입력


scanf()도 getchar()과 같이 표준입출력에 포함됩니다.


scanf()란?
scanf()는 형식화된 입력을 키보드로부터 받습니다. 형식화된 입력이란 printf()의 서식과 비슷한 의미를 갖습니다. 
즉, 입력받을 변수를 여러개 기입하여 서식에 맞추어 데이터를 저장합니다. 

scanf()의 파라메터를 한번 보죠.


scanf()의 파라메터
scanf( 서식 , 입력받을변수 )


서식을 잘 모르시겠으면 [C,C++ 레퍼런스] - printf() 사용법 을 한번 보시고 오세요 ^^


간단한 예를 보도록 하죠.

int a;
scanf("%d", &a);

printf()문을 많이 사용하셨으면 쉽게 이해되실겁니다.
이건 서식이 정수형이고 a라는 변수에 받겠다. 라는 의미입니다. 자료형은 꼭 맞춰 주셔야 겠죠?^^


다른 예를 보도록하죠.

int a, b;
scanf("%d%d", &a, &b);

이건 뭘까요? 그렇습니다. a,b를 동시에 입력받는 것이죠. 

실행해보면 무슨 말인지 아실겁니다.
Enter와 Space키로 분리하여 입력할수 있습니다.

예로써 1,2를 입력하고 싶다면 1 > Enter > 2 Enter를 입력하거나 1 > Space > 2 > Space를 입력하시면 a,b에 모두 입력을 할수 있습니다.

간단하게 신상명세를 받는 프로그램 하나 만들어보도록 하죠.


#include <stdio.h>
void main()

{

// 입력받을 변수를 준비합니다

char szName[255];

int nAge = 0;

float fHeight = 0;
// 각각 입력을 받습니다

        // scanf("%s%d%f", szName, &nAge, &fHeight); <<--- 이렇게 입력을 받아도 됩니다^^

printf("이름을 입력해 주세요.\n");

scanf("%s", szName);

printf("나이를 정수로 입력해 주세요.\n");

        scanf("%d", &nAge);

  printf("키를 소수점단위로 입력해 주세요.\n");

scanf("%f", &fHeight);



// 입력받은 정보를 출력하여 줍니다

        printf("\n\n\n");

printf("-- 입력정보 출력 -- \n");

printf("이름:%s\n", szName);

printf("나이:%d\n", nAge);

printf("키:%g\n", fHeight);
}


결과값은,


상당히 쉽죠?^^

getchar()나 scant()를 가지고 입력을 받은 후 사칙연산도 할 수 있습니다. 이부분에 대해서는 언급안하겠습니다. 
당연히 하실수 있으시겠죠?^^


정리하자면,
scanf()는 형식화된 입력을 키보드로부터 받으며 형식화된 입력이란 printf()의 서식과 비슷한 의미를 갖습니다. 
입력받을 변수에 대한 다수의 서식 및 변수를 통하여 동시에 입력을 받을수 있습니다.