컴퓨터 공부/© C

[C언어] 1. 기본 입출력

letzgorats 2021. 1. 27. 01:24

<scanf()>

 

- C언어에서 특정한 변수에 값을 넣기 위해서 scanf()를 사용한다.

- 취약한 함수로 분류 되어 있어 Visual Studio 에서는 사용할 수 없도록 제한되고 있다.

   (visual studio를 제외한 대부분의 IDE에서는 scanf()를 사용해도 컴파일이 진행된다.)

- 사용하고 싶으면 맨위에(main밖에) #define _CRT_SECURE_NO_WARNINGS

를 적어주면 적용가능하다.

 

<&>

- &는 특정한 변수의 주소를 의미한다.

- 앰퍼샌드(ampersnad)라고도 한다. (포인터에서 더 자세하게 다룸)

- 이 기호를 사용함으로서 실제로 컴퓨터가 특정한 메모리 주소에 접근해서 데이터를 쓸 수 있도록

  (scanf()의 기능을 수행할 수 있도록) 하기 위해서 사용한다.

 

<형식 지정자>

 

Int- %d로 정수형 데이터를 입출력

long long- %lld '' 정수형 데이터를 입출력

 

double- 입력시:%lf  출력시:%f 로 큰 실수형 데이터를 처리

(입력을 받을 때는 특정 주소에 특정 크기만큼 입력을 수행.

다만, 출력할 때는 주소가 아닌 값 자체를 이용해 출력하므로 구체적인 크기를 지정하지 않아도 된다.)

float- %f로 실수형 데이터를 입출력

string-%s로 문자열 데이터를 입출력

char-%c로 문자 데이터를 입출력

 

- %자체를 문자로 출력하고 싶으면?

: "%%"를 입력하여 출력할 수 있다.

 

(예제1) 실수형을 입력 받아서 소수점 둘째 자리까지 출력하기

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void) {

        double a;

        scanf("%lf", &a);

        printf("%.2f\n", a);

        system("pause");

        return 0;
}

(해설) print %f앞에 .2를 붙이면 소수점셋째자리에서 반올림하여 둘째자리까지 출력하게 하는 방법이다. 원주율 구할 때 쓰면 되겠다.

 

(예제2) 두 숫자를 입력 받아 순서 바꾸어 출력하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

             int a,b;

             scanf("%d %d", &a, &b);

             printf("%d %d\n",b,a);

             system("pause");

             return 0;

}

(해설) %d &d를 연달아 써주되, 출력문에서 a,b자리를 b,a로 바꿔주기만 하면 된다.

 

(예제3)한 자리 씩 끊어서 입력 받기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {

    int a, b, c;

    scanf("%1d%1d%1d", &a, &b, &c);

    printf("%d %d %d\n", a, b, c);

    return 0;

}

(해설) scanf문에서 %1d%1d%1d 를 연달아 써주면 된다.

 

(정리)

1) C언어에서 입력 받거나 출력할 때는 형식 지정자를 적절히 따라야 한다.

2) printf()는 단순히 데이터를 넘기고, scanf()는 입력 받을 주소를 나타내기 위해서 꼭 &를 사용한다.

반응형

'컴퓨터 공부 > © C' 카테고리의 다른 글

[C언어] 6. 배열  (0) 2021.01.28
[C언어] 5. 함수  (0) 2021.01.27
[C언어] 4. 반복문  (0) 2021.01.27
[C언어] 3. 조건문  (0) 2021.01.27
[C언어] 2. 연산자  (0) 2021.01.27