본문 바로가기
Programming/C Memo

07. 입력

by (J&M) 2020. 2. 10.

본 글은 C언어를 배우고 나서 복습 겸 정리한 글입니다.

코드

#include <stdio.h>

int main()
{	
    int num;
    char c;
    
    printf("숫자와 문자를 입력하세요 : ");
    scanf("%d %c", &num, &c);
    
    printf("입력한 숫자는 %d이고 입력한 문자는 %c입니다.", mean);	//출력
    
    return 0;
}

실행결과

입력 : 10 c

출력 : 입력한 숫자는 10이고 입력한 문자는 c입니다.

 

요약


line 5, 6:

    값을 저장할 정수형 변수 num과 char형 변수 c를 선언

line 9 : scanf("%d %c", &num, &c);

    scanf로 사용자로 부터 입력을 받는다.

    printf와 마찬가지로 서식문자를 사용하며 서식문자 이외에 문자를 넣으면 안된다.

    &변수는 변수의 주소값을 나타낸다.

 

입력


scanf()

C언어에서 콘솔을 통해 사용자로 부터 입력을 받을 수 있도록 하는 함수는 scanf()이다. scanf또한 stdio.h에 정의되어 있다.

scanf("서식문자", &변수, &변수, ... &변수); 의 형식으로 사용한다.

 

scanf에서도 서식문자를 사용한다.

&는 변수의 주소를 가리킬때 사용한다. 변수가 있는 곳을 주소로 찾아가 저장하는 것이다.

이에 대해선 포인터를 정리할 때 자세히 정리

 

scanf에서 서식문자 이외에 다른 문자가 포함된다면 어떻게 될까?

#include <stdio.h>

int main()
{
    int num;
    
    scanf("a %d", &num);
    
    printf("출력 : %d", num);
    
    return 0;
}

여기서 입력을 10으로 했다면, 출력은 (출력 : 0)이 된다.

 

scanf를 보면 서식문자인 %d앞에 서식문자가 아닌 a가 붙어있는데 

이 a가 입력인 10에서 앞 1을 잡아먹기 때문에 num에는 0이 저장된다.

'Programming > C Memo' 카테고리의 다른 글

09. 반복문(1) [for문]  (0) 2020.02.12
08. 조건문 (if문)  (0) 2020.02.10
06. 출력과 주석  (0) 2020.02.10
05. 연산자(2) [ 비트, 시프트, 삼항, 대입]  (0) 2020.02.10
04. 연산자(1) [산술, 비교, 논리]  (0) 2020.02.09

댓글