뚜당탕탕

Visual Studio Code) 05 입력 함수 [scanf] 본문

공부 기록용/C Language

Visual Studio Code) 05 입력 함수 [scanf]

뚜띠언니 2021. 1. 13. 19:32

ㅠㅠ 자세히 이해하고 넘어가는건 좋지만, 진도가 너무 지체돼서 오늘부터 하루 목표량을 정하기로 했다.

pdf 파일이 총 560 페이지에서 현재 60페이지 가량 봤으니, 하루에 50페이지씩 보고 10일 안에 개념을 볼 수 있도록 목표를 정했다. (가능할까?)

오늘의 목표는 pdf 60 페이지에서 111 페이지까지 보는것이다.

참고로 이 카테고리의 게시글들은 카테고리의 이름에서 알 수 있듯이

<모두의 코드 - 씹어먹는 C 언어 (출처:modoocode.com)> 의 강의 자료를 보고 혼자 따라치며 연습해보고 공부하는 것을 (나를 위해) 기록용으로 남기려고 하는 것이다.

#include <stdio.h>

int main() {
    unsigned int b = -1;
    printf("b 에 들어있는 값을 unsigned int 로 해석했을 때 값 : %u \n", b);

    main2();
    main3();
    //main4();
    main5();
    return 0;
}
// %u 는 unsigned 타입으로 해석하라는 의미이다.

int main2() {
    unsigned int b = 4294967295;
    printf("b : %u \n", b);

    b++;                         // 자료형의 크기를 벗어나는 비트는 그대로 버려진다 ㅠ
    printf("b : %u \n", b);      // 출력결과 : 0 ㅠ
    return 0;
}

/* 4. 문자 입력 받기
        문자를 저장하는 변수 */
    int main3() {
        char a;
        a = 'a';        
        // 작은 따옴표를 쓰지 않으면, a 라는 변수의 값을 a 라는 변수에 대입하는 문장으로 해석한다.
        printf("a 의 값과 들어있는 문자는? : 값 : %d , 문자 : %c \n", a, a);
        // %d 는 숫자로 출력 (10진법의 정수) , %c 는 문자로 출력
        return 0;
    }

    /*  scanf 함수로 입력받기 
        printf 가 화면에 결과를 출력해 주는 함수
        scanf 는 화면(키보드)으로 부터 입력을 받는 함수 
        printf 와 scanf 를 가리켜 입출력함수 라고 한다.

        scanf 입력함수 에서는 
            - float 은 무조건 %f 로 입력 받아야 한다
            - double 은 무조건 %lf 로 입력 받아야 한다
    */

    int main4() {
        double celsius;     // 섭씨 온도
        
        printf("섭씨 온도를 화씨 온도로 바꿔주는 프로그램 입니다. \n");
        printf("섭씨 온도를 입력해 주세요 : ");
        scanf("%lf", &celsius);     // 섭씨 온도를 입력 받는다.

        printf("섭씨 %f 도는 화씨로 %f 도 입니다 \n", celsius, 9 * celsius / 5 + 32);
        return 0;
    }

    int main5() {
        char ch;        //문자

        short sh;       //정수
        int i;
        long lo;

        float fl;       //실수
        double du;

        printf("char 형 변수 입력 : ");
        scanf("%c", &ch);

        printf("short 형 변수 입력 : ");
        scanf("%hd", &sh);                  
        printf("int 형 변수 입력 : ");
        scanf("%d", &i);
        printf("long 형 변수 입력 : ");
        scanf("%ld", &lo);

        printf("float 형 변수 입력 : ");
        scanf("%f", &fl);
        printf("double 형 변수 입력 : ");
        scanf("%lf", &du);

        printf("char : %c , short : %d , int : %d ,", ch, sh, i);
        printf("long : %ld , float : %f , double : %lf \n", lo, fl, du);
        return 0;
    }

    /* 이번 강의 정리 

    1. char 은 1 바이트(byte) 정수를 저장하는 타입으로, 주로 문자를 저장하는데 사용된다.
    2. 각 문자들은 아스키 테이블이란 표를 통해 특정 정수와 대응되어 있다.
    3. scanf() 를 통해 사용자로 부터 데이터를 입력 받을 수 있다.
    4. %c 는 문자, %d 는 정수, %f 는 실수 float, %lf 는 실수 double 을 받는다.

    */
   

7

을 입력했다.

왜냐면 지금 내가 있는 지역의 현재 온도가 7도 이기 때문 ^^

* 위에서 입력 받는 다른 입력함수와 같이 실행하면(main4 함수와 main5 함수를 동시에 실행)

첫 번째 입력함수에서 입력 후에 엔터를 치면, 두번째 입력함수에서는 입력을 받지 못하고 바로 출력이 된다.

Comments