본문 바로가기

IT/프로그래밍

C언어에서의 입력 함수 : scanf의 모든 것

728x90
반응형

 

안녕하세요, 그라티입니다.

 

오늘은 C언어에서의 입력 함수인 'scanf'에 대해 자세히 알아보겠습니다.

 

scanf함수는 사용자로부터 입력을 받는 데 사용되는데요, 다양한 서식 문자열을

 

활용하여 원하는 데이터 타입으로 입력을 받을 수 있습니다.

 

 

1. 기본 사용법

 

'scanf' 함수의 가장 기본적인 사용법은 변수에 값을 입력받는 것입니다. 일반적으로 사용되는 서직 문자열은 다음과 같습니다.

  • %d : 정수 입력
  • %f : 실수 입력
  • %c : 문자 입력
  • %s : 문자열 입력
  • %x : 16진수 입력

예를 들어, 사용자로부터 정수를 입력받아 그 값을 출력하는 코드입니다.

 

#include <stdio.h>

int main() {
    int num;
    printf("숫자를 입력하세요: ");
    scanf("%d", &num);
    printf("입력하신 숫자는 %d 입니다.\n", num);
    return 0;
}

 

2. 여러 개의 입력받기

 

'scanf' 함수를 사용하면 한 번에 여러 개의 값을 입력받을 수도 있습니다. 서식 문자열을 연속해서 사용하면 각각의 변수에 값을 입력받을 수 있습니다.

 

예를 들어, 사용자로부터 두 개의 정수를 입력받아 더한 값을 출력하는 코드입니다.

 

#include <stdio.h>

int main() {
    int num1, num2;
    printf("두 개의 숫자를 입력하세요(예: 3 4): ");
    scanf("%d %d", &num1, &num2);
    printf("두 수의 합은 %d 입니다.\n", num1 + num2);
    return 0;
}

 

3. 입력 공백 처리

 

입력받을 때 공백이나 개행 문자를 처리하는 방법도 알아봅시다. 문자나 문자열을 입력받을 때 공백을 포함하려면 서직 문자열에 '[^\n]' 을 사용합니다. 이를 사용하면 개행 문자가 입력될 때까지 문자를 입력받을 수 있습니다.

 

예를 들어, 사용자로부터 공백을 포함한 문자열을 입력받아 출력하는 코드입니다.

 

#include <stdio.h>

int main() {
    char str[100];
    printf("문장을 입력하세요: ");
    scanf("%[^\n]", str);
    printf("입력하신 문장은: %s\n", str);
    return 0;
}

 

4. 서식 문자열 안의 공백 처리

 

때로는 입력받을 데이터 사이에 공백이 필요할 수 있습니다. 이 경우, 서식 문자열 안에 공백을 추가하면 됩니다. 예를 들어, 사용자로부터 '시간:분' 형식으로 시간을 입력받는 코드는 다음과 같습니다.

 

#include <stdio.h>

int main() {
    int hours, minutes;
    printf("시간과 분을 입력하세요(예: 12:34): ");
    scanf("%d:%d", &hours, &minutes);
    printf("입력하신 시간은 %d시 %d분 입니다.\n", hours, minutes);
    return 0;
}

 

5. 입력 버퍼 처리

 

'scanf' 함수를 사용할 때 입력 버퍼에 남은 데이터 때문에 문제가 발생할 수 있습니다. 이를 해결하기 위해 'getchar()' 함수를 사용하여 입력 버퍼를 비워주는 방법이 있습니다.

 

에를 들어, 사용자로부터 문자와 숫자를 연속해서 입력받는 코드입니다.

 

#include <stdio.h>

int main() {
    char ch;
    int num;
    
    printf("문자를 입력하세요: ");
    scanf("%c", &ch);
    getchar(); // 입력 버퍼 비우기
    
    printf("숫자를 입력하세요: ");
    scanf("%d", &num);
    
    printf("입력하신 문자와 숫자는 %c와 %d입니다.\n", ch, num);
    return 0;
}

 

이렇게 C언어의 'scanf' 함수에 대해 자세히 알아보았습니다.

 

다양한 서식 문자열과 옵션을 활용하면 원하는 형태로 입력을 받을 수 있습니다.

 

모르시는 내용이 있으면 댓글로 남겨주세요~~~!

 

728x90
반응형