ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C] 출력과 입력(printf, scanf , scanf_s)
    C \ C++ 2020. 11. 2. 16:47

    출력

    데이터를 출력 하기 위해서는 "printf" 라는 함수를 사용한다.

     

    형식

    printf("서식", 데이터);

     

    서식 데이터 타입 비고
    %d int 부호 있는 10진수 정수
    %u unsigned int 부호 없는 10진수 정수
    %o int 8진수
    %x int 16진수 정수 소문자
    %X int 16진수 정수 대문자
    %f float 실수
    %lf double 실수
    %e florat,double 부동소수점 e(소문자) 방식 실수
    %E float,double 부동소수점 E(대문자) 방식 실수
    %c char 문자
    %s,%S char*,char[] 문자열
    %p void* 포인트형

    데이터에는 변수 혹은 상수를 넣어서 출력을 한다.

     

    예제

     

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #include <stdio.h>
     
    void main()
    {
        int nNum = -10;
        float fNum = 12345.6789123f;
        double dbNum = 89789.123456f;
        char ch = 'H';
        char chString[20= "Hello World";
     
        printf("%%d %d\n", nNum);
        printf("%%u %u\n", nNum);
        printf("%%o %o\n", nNum);
        printf("%%x %x\n", nNum);
        printf("%%X %X\n", nNum);
        printf("%%f %f\n", fNum);
        printf("%%lf %lf\n", dbNum);
        printf("%%e %e\n", dbNum);
        printf("%%E %E\n", dbNum);
        printf("%%c %c\n", ch);
        printf("%%s %s\n", chString);
     
    }
     
    cs

     

    입력

    데이터를 입력받기 위해서는 "scanf" 라는 함수를 사용한다.

     

     

    ※ Visual Studio 사용시 
    error 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.
    이런 에러가 발생한다면 다음과 같이 하면 된다.

    1. scanf대신 scanf_s를 사용한다.

    2. "#define _CRT_SECURE_NO_WARNINGS" 추가한다.

     

    형식

    scanf("서식", &변수(변수주소));

     

    서식 데이터 타입 비고
    %d int 부호 있는 10진수 정수
    %u unsigned int 부호 없는 10진수 정수
    %o int 8진수
    %x int 16진수 정수 소문자
    %f float 실수
    %lf double 실수
    %e float 부동소수점 e방식 실수
    %c char 문자
    %s,%S char*,char[] 문자열

    scanf 함수는  서식에 맞춰서 변수주소로 접근해서 데이터를 입력한다.

    그로인해 변수앞에 변수의 주소값을 지칭하는 "&"을 추가한다.

     

    예제

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
     
    void main()
    {
        int nNum1, nNum2, nNum3, nNum4;
        float fNum1, fNum2;
        double dbNum;
        char ch = 'H';
        char chString[20= "Hello World";
     
        
        printf("%%d : ");
        scanf("%d"&nNum1);
        while (getchar() != '\n');
     
        printf("%%u : ");
        scanf("%u"&nNum2);
        while (getchar() != '\n');
     
        printf("%%o : ");
        scanf("%o"&nNum3);
        while (getchar() != '\n');
     
        printf("%%x : ");
        scanf("%x"&nNum4);
        while (getchar() != '\n');
     
        printf("%%f : ");
        scanf("%f"&fNum1);
        while (getchar() != '\n');
     
        printf("%%lf : ");
        scanf("%lf"&dbNum);
        while (getchar() != '\n');
     
        printf("%%e : ");
        scanf("%e"&fNum2);
        while (getchar() != '\n');
     
        printf("%%c : ");
        scanf("%c"&ch);
        while (getchar() != '\n');
     
        printf("%%s : ");
        scanf("%s", chString); // 문자열은 chString 변수 자체가 주소이기 때문에 &를 제외합니다.
     
        printf("%%d %d\n", nNum1);
        printf("%%u %u\n", nNum2);
        printf("%%o %o\n", nNum3);
        printf("%%x %x\n", nNum4);
        printf("%%f %f\n", fNum1);
        printf("%%lf %lf\n", dbNum);
        printf("%%e %e\n", fNum2);
        printf("%%c %c\n", ch);
        printf("%%s %s\n", chString);
    }
     
    cs

     

     

    출처: scvtwo.tistory.com/133

    728x90
    반응형

    'C \ C++' 카테고리의 다른 글

    [c++ error] warning: range-based for loop is a C++11 extension  (0) 2021.01.19
    [C++] range-based for statement  (0) 2021.01.19
    [C++]ERRORS  (0) 2021.01.17
    [C언어] 입력버퍼  (0) 2021.01.01
    [C] 자료형 (Data Type)  (1) 2020.11.02

    댓글

Designed by Tistory.