변수

학습 목표

  1. 변수를 선언할 수 있다.

  2. 콘솔에 변수값을 출력하고 입력 받을 수 있다.

표준 출력 함수 : printf

  • 문자열을 콘솔창에 출력하는 함수로 stdio.h 파일안에 있다.

    • 문자열은 쌍따옴표("") 안에 있는 문자들이 문자열이다.

    • 문자는 따옴표('')안에 있는 문자 1개가 문자이다.

  • 기본 사용 예시

    #include <stdio.h>
    int main(){
       printf("Hello world\n");
       return 0;
    }
  • printf함수로 변수값을 출력하기 위해선 서식문자가 필요하다.

    • 대표적인 서식 문자 종류

      서식문자자료형비고
      %c문자문자 출력
      %dint정수 출력
      %lldlong long정수
      %ffloat실수 출력
      %lfdouble실수 출력
      %schar 배열, 문자열문자열 출력
    • 문자열 안에 있는 서식문자 갯수 만큼 문자열 뒤에 ,와 값(상수 또는 변수 또는 식)이 와야 한다.

    • 예시


      #include <stdio.h>
      int main(){
         int num = 10, num2 = 20;
         char op = '/';
         double res = 0.5;
         //%.2lf는 소수점 둘째자리까지 출력
         //서식문자가 4개이므로 ,값이 4개 와야 한다.
         printf("%d %c %d = %.2lf\n",num1, op, num2, res);
         //출력 결과
         //10 / 20 = 0.50
         return 0;
      }

표준 입력 함수 : scanf

  • 콘솔에서 입력받은 값을 변수에 저장하는 함수로 stdio.h 파일안에 있다.

  • printf 함수는 문자열 안에 서식문자 수만큼 값이 와야 한다면 scanf는 서식문자 수만큼 주소가 와야 한다.

  • 주소 연산자 : &

  • 예시 - 한개씩 입력받는 예시

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    int main(){
       int num;
       char op;
       double res;
       printf("정수를 입력하세요 : ");
       scanf("%d",&num);
       printf("문자를 입력하세요 : ");
       /*
       문자 입력 시, 문자 입력하기 전 다른 변수를 입력받았다면 %c앞에 공백 필수,
       안넣으면 엔터가 자동으로 %c를 통해 op에 저장
       */
       scanf(" %c",&op);
       printf("실수를 입력하세요 : ");
       scanf("%lf",&res);
       printf("num = %d, op = %c, res = %.2lf\n", num, op, res);
       return 0;
    }
  • 예시 - 여러개 입력받는 예시

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    int main(){
       int num;
       char op;
       double res;
       printf("정수, 문자, 실수를 입력하세요 : ");
       scanf("%d %c %lf", &num, &op, &res);
       printf("num = %d, op = %c, res = %.2lf\n", num, op, res);
       return 0;
    }
  • scanf 사용 시 다음과 에러가 나오는 경우

    심각도 코드  설명  프로젝트    파일     비표시 오류(Suppression) 상태
    오류 C4996 'scanf': This function or variable may be unsafe.
    Consider using scanf_s instead. To disable deprecation,
    use _CRT_SECURE_NO_WARNINGS. See online help for details.
    • 원인 : 컴파일러 버전이 높아 scanf 대신 scanf_s함수를 사용하기를 권장

    • 해결방법

      • 방법1 : scanf_s 사용

      • 방법2: scanf를 사용하기 위해 다음 코드를 첫줄에 추가


        #define _CRT_SECURE_NO_WARNINGS


+ Recent posts