본문 바로가기
Computer Science/C 언어

[C#3] 포맷 입력과 출력 (Formatted Input/Output)

by rnasterofmysea 2024. 12. 1.
반응형

3장: 포맷 입력과 출력 (Formatted Input/Output)


3.1 printf 함수

기본 형식

printf("포맷 문자열", 값1, 값2, ...);
  • 포맷 문자열: 출력 데이터의 형식을 지정합니다.
  • 값(Arguments): 포맷 문자열에 따라 출력될 데이터입니다.

포맷 지정자 (Format Specifiers)

포맷 지정자 데이터 타입 설명

%d 정수 (int) 10진수 정수 출력
%f 부동소수점 (float) 기본 소수점 6자리까지 출력
%lf 부동소수점 (double) double 타입 실수 출력
%c 문자 (char) 문자 출력
%s 문자열 (char[]) 문자열 출력
%x 정수 (int) 16진수 출력
%o 정수 (int) 8진수 출력

출력 예제

#include <stdio.h>

int main(void) {
    int num = 10;
    float pi = 3.14159;
    char ch = 'A';
    char str[] = "Hello, C!";

    printf("정수: %d\n", num);           // %d는 정수 출력
    printf("실수: %.2f\n", pi);          // %.2f는 소수점 둘째 자리까지 출력
    printf("문자: %c\n", ch);            // %c는 문자 출력
    printf("문자열: %s\n", str);         // %s는 문자열 출력

    return 0;
}

출력 결과:

정수: 10
실수: 3.14
문자: A
문자열: Hello, C!

3.2 scanf 함수

기본 형식

scanf("포맷 문자열", &변수1, &변수2, ...);
  • 포맷 문자열: 입력 데이터의 형식을 지정합니다.
  • &: 입력받은 데이터를 저장할 변수의 주소를 나타냅니다.

포맷 지정자 (Format Specifiers)

포맷 지정자 데이터 타입 설명

%d 정수 (int) 10진수 정수 입력
%f 부동소수점 (float) 실수 입력
%lf 부동소수점 (double) double 타입 실수 입력
%c 문자 (char) 문자 입력
%s 문자열 (char[]) 문자열 입력 (공백 제외)

입력 예제

#include <stdio.h>

int main(void) {
    int num;
    float value;
    char ch;

    printf("정수를 입력하세요: ");
    scanf("%d", &num);

    printf("실수를 입력하세요: ");
    scanf("%f", &value);

    printf("문자를 입력하세요: ");
    scanf(" %c", &ch);  // 공백 처리를 위해 앞에 공백 추가

    printf("입력된 값 - 정수: %d, 실수: %.2f, 문자: %c\n", num, value, ch);

    return 0;
}

출력 결과:

정수를 입력하세요: 10
실수를 입력하세요: 3.14
문자를 입력하세요: A
입력된 값 - 정수: 10, 실수: 3.14, 문자: A

3.3 printf와 scanf에서 자주 사용하는 기능

숫자 출력 형식 조정

  1. 소수점 자릿수 지정:
  2. printf("%.2f", 3.14159); // 3.14
  3. 폭 지정 및 정렬:
  4. printf("%10d", 123); // 오른쪽 정렬, 폭 10 printf("%-10d", 123); // 왼쪽 정렬, 폭 10

문자열 입력 처리

scanf는 공백을 기준으로 문자열 입력을 처리합니다. 전체 문장을 입력받으려면 fgets를 사용합니다.

#include <stdio.h>

int main(void) {
    char name[50];

    printf("이름을 입력하세요: ");
    scanf("%49s", name);  // 공백 포함 불가
    printf("이름: %s\n", name);

    return 0;
}

3.4 심화 예제

1. 단위 변환 계산기

#include <stdio.h>

int main(void) {
    float celsius, fahrenheit;

    printf("섭씨 온도를 입력하세요: ");
    scanf("%f", &celsius);

    fahrenheit = (celsius * 9 / 5) + 32;
    printf("화씨 온도: %.2f\n", fahrenheit);

    return 0;
}

2. 두 수의 합

#include <stdio.h>

int main(void) {
    int num1, num2;

    printf("첫 번째 정수를 입력하세요: ");
    scanf("%d", &num1);

    printf("두 번째 정수를 입력하세요: ");
    scanf("%d", &num2);

    printf("두 수의 합: %d\n", num1 + num2);

    return 0;
}

 

반응형