WinCNT

C 언어 - 03. 기본 입출력 본문

Study/C

C 언어 - 03. 기본 입출력

WinCNT_SSS 2021. 7. 31. 23:38

scanf()로 입력해보기

#define _CRT_SECURE_NO_WARNINGS //취약 함수인 scanf를 쓰기 위한 명시적인 정의(VS 한정)
#include <stdio.h>


int main(void)
{
    int a;
    printf("숫자를 입력해 주세요.\n");

    //scanf는 가장 기초적인 입력 함수이며 취약한 함수
    //VS에서 바로 사용할 수 없게 되어 있음
    scanf("%d", &a);
    printf("입력한 숫자는 %d입니다.\n", a);
    system("pause");
    return 0;
}

 

scanf()에서 &를 사용하는 이유

  • &(Ampersand, 앰퍼샌드)는 특정 변수의 주소를 의미한다.
  • 실제로 컴퓨터는 특정한 메모리 주소에 접근하여 데이터를 수정하므로 &를 사용하는 것
    • 그렇다면 메모리 주소에 얼마만큼의 크기로 데이터를 쓸 지 결정해야 하는데
      그 때 사용하는 것이 형식 지정자이다.

C언어 형식 지정자 예시(출처 : 퍼스트 캠퍼스)

 

double형 데이터는 왜 입출력 시의 형식 지정자가 다를까?
입력을 받을 때는 특정 주소에 특정 크기만큼 입력을 수행해야 하지만(%lf),
출력을 할 때에는 주소가 아닌 값 자체를 이용해 출력하므로 구체적인 크기 지정이 필요 없다(%f).
형식 지정자의 응용
형식 지정자의 앞에 숫자를 추가함으로써 입출력 시의 자릿수를 지정할 수 있다.
예) scanf("%1d%1d%1d", &a, &b, &c);
  ⇒ 입력 받은 정수를 한 자리씩 끊어서 변수 a, b, c에 넣는 처리

 

 

'Study > C' 카테고리의 다른 글

C 언어 - 06. 반복문  (0) 2021.08.02
C 언어 - 05. 조건문  (0) 2021.08.01
C 언어 - 04. 연산자  (0) 2021.08.01
C 언어 - 02. 변수와 상수  (0) 2021.07.29
C 언어 - 01. 프로그래밍  (0) 2021.07.29