minError

비전공자의 C언어 학습기 [ scanf ] 본문

Study-ing/C

비전공자의 C언어 학습기 [ scanf ]

동빠기 2020. 2. 17. 21:06

개인적으로, 학습한 내용으로

궁금한 부분들을 구글에서 검색후, 정리한 내용을 토대로 작성되어 졌습니다.

 

 

 

scanf() 함수는 C언어의 표준 입력 함수로, 사용자로부터 다양한 데이터를 다양한 서식에 맞춰 입력받을 수 있게 해줍니다.

scanf() 함수의 f는 formatted의 약자이며, 서식화된 입력을 받는다는 의미입니다.

이 함수는 입력받은 데이터를 어떤 서식으로 변환할지 서식 지정자(format specifier)를 통해 직접 지정할 수 있습니다.

 

C언어에서 데이터를 입력받으려면 입력받고자 하는 데이터의 타입에 해당하는 크기의 메모리를 우선 할당받아야 합니다.

이처럼 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 변수(variable)라고 합니다.

 

앞선 예제에서 scanf() 함수에 포함된 '&'기호는 주소 연산자(&)라고 합니다.

이 주소 연산자는 입력받은 데이터를 뒤에 나오는 변수에 저장하라는 의미입니다.

 

 

 

서식 지정자의 동시 사용

여러 개의 서식 지정자를 동시에 사용하여, 여러 데이터를 서로 다른 서식으로 한 번에 입력받을 수 있습니다.

단, 이때에는 서식 지정자의 순서와 저장할 변수의 순서가 반드시 같아야 합니다.

입력받는 데이터의 구분은 공백(줄 바꿈, 탭, 띄어쓰기 등)을 기준으로 삼습니다.

 


 

#include <stdio.h>

int main(void)

{

    int num01, num02;

 

    printf("두 개의 정수를 입력하세요 : ");

    scanf("%d %d", &num01, &num02);

 

    printf("입력하신 두 정수를 8진수로 나타내면 %o와 %o가 되고,\n", num01, num02);

    printf("입력하신 두 정수를 16진수로 나타내면 %x와 %x가 됩니다.\n", num01, num02);

    return 0;

}  

 


 

double형 실수의 입력

scanf() 함수로 float형 실수를 입력받을 때는 서식 지정자로 '%f'를 사용하면 됩니다.

하지만 double형 실수를 입력받을 때는 printf() 함수에서처럼 '%f'를 사용하면 안 됩니다.

scanf() 함수로 double형 실수를 입력받을 때는 반드시 '%lf' 서식 지정자를 사용해야 정확한 값으로 입력받을 수 있습니다.

 

 

 

 


#include <stdio.h> 

int main(void)

{

    float num01;

    double num02;

 

    printf("두 개의 실수를 입력하세요 : ");

    scanf("%f %f", &num01, &num02);

    printf("입력하신 두 실수는 %f와 %f입니다.\n", num01, num02);

    printf("입력받은 두 실수 중 두 번째 double형 변수에는 전혀 다른 값이 저장되었습니다.\n\n");

 

    printf("다시 한 번 두 개의 실수를 입력하세요 : ");

    scanf("%f %lf", &num01, &num02);

    printf("입력하신 두 실수는 %f와 %f입니다.\n", num01, num02);

    printf("이번에는 두 실수 모두 제대로 저장되었습니다.\n");

    return 0;

}

 

 


 

scanf?

키보드로 숫자 등을 입력받을 때 이용하는 함수

형식 지정자 %d 는 printf 함수 때와 마찬가지로 10진수로 변환합니다.

그리고 printf 함수와는 달리 실인수로 전달할 변수명 앞에 &을 붙여야 합니다.

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

C언어 문제 풀이 [ int형 변수 ]  (0) 2020.02.20
C언어 문제 풀이 [ 정수값 출력 ]  (0) 2020.02.19
비전공자의 C언어 학습기 [ printf ]  (0) 2020.02.17
비전공자의 C언어 학습기 [ include ]  (0) 2020.02.07
Hello World  (0) 2020.01.28
Comments