0Pricing
C Academy · 강의

scanf와 입력

사용자 입력을 읽습니다

scanf와 입력은(는) CoddyKit의 무료 C Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

scanf의 기능

scanf는 사용자가 입력한 형식화된 입력을 읽습니다. printf와 같은 지정자를 사용합니다.

#include <stdio.h>
int main(void) {
    int x = 0;
    /* scanf("%d", &x); */
    x = 5;
    printf("x = %d\n", x);
    return 0;
}

주소 연산자

scanf는 값을 저장할 수 있도록 변수의 주소가 필요합니다. 그래서 &x라고 작성합니다.

#include <stdio.h>
int main(void) {
    int x = 42;
    int *p = &x;
    printf("value via address = %d\n", *p);
    return 0;
}

정수 읽기

정수를 읽으려면 %d와 int 변수의 주소를 전달하십시오.

#include <stdio.h>
int main(void) {
    int n;
    /* scanf("%d", &n); */
    n = 7;
    printf("You entered %d\n", n);
    return 0;
}

실수 읽기

float을 읽으려면 %f를, double을 읽으려면 %lf를 사용하십시오.

#include <stdio.h>
int main(void) {
    double d;
    /* scanf("%lf", &d); */
    d = 3.14;
    printf("d = %.2f\n", d);
    return 0;
}

여러 값 읽기

하나의 scanf로 공백으로 구분된 여러 값을 읽을 수 있습니다.

#include <stdio.h>
int main(void) {
    int a, b;
    /* scanf("%d %d", &a, &b); */
    a = 3; b = 4;
    printf("sum = %d\n", a + b);
    return 0;
}

문자 읽기

문자 하나를 읽으려면 %c를 사용하십시오. 공백과 줄 바꿈도 함께 읽는다는 점에 주의하십시오.

#include <stdio.h>
int main(void) {
    char c;
    /* scanf(" %c", &c); */
    c = 'X';
    printf("char = %c\n", c);
    return 0;
}

단어 읽기

%s는 공백으로 구분된 단어를 문자 배열에 읽어 넣습니다. 배열 이름은 이미 주소이므로 &가 필요하지 않습니다.

#include <stdio.h>
int main(void) {
    char word[20];
    /* scanf("%s", word); */
    word[0] = 'H'; word[1] = 'i'; word[2] = 0;
    printf("word = %s\n", word);
    return 0;
}

scanf 반환값

scanf는 성공적으로 읽은 항목의 개수를 반환합니다. 잘못된 입력을 감지하려면 반환값을 확인하십시오.

#include <stdio.h>
int main(void) {
    int n = 5;
    int read = 1; /* pretend scanf returned 1 */
    if (read == 1)
        printf("got %d\n", n);
    return 0;
}

앞쪽 공백 건너뛰기

숫자 지정자는 앞쪽 공백을 자동으로 건너뛰지만 %c는 그렇지 않습니다. %c 앞에 공백을 넣으면 이 문제를 해결할 수 있습니다.

#include <stdio.h>
int main(void) {
    char c = 'Y';
    printf("Reading with \" %%c\" skips spaces\n");
    printf("c = %c\n", c);
    return 0;
}

입력 검증

데이터를 신뢰하기 전에 항상 반환값을 확인하세요.

#include <stdio.h>
int main(void) {
    int value = 10;
    int ok = 1;
    if (ok)
        printf("valid: %d\n", value);
    else
        printf("invalid input\n");
    return 0;
}

종합하기

일반적인 프로그램은 사용자에게 입력을 요청하고, 값을 읽은 다음 사용합니다.

#include <stdio.h>
int main(void) {
    int age;
    printf("Enter age: ");
    /* scanf("%d", &age); */
    age = 20;
    printf("Next year you will be %d\n", age + 1);
    return 0;
}

빠른 확인

scanf에 대한 이해도를 확인해 보세요.

복습: scanf와 입력

사용자 입력을 읽는 방법을 배웠습니다.

  • scanf는 printf 스타일 형식 지정자를 사용합니다
  • 저장할 위치를 알 수 있도록 &var를 전달합니다
  • double에는 %lf를, 단어에는 %s를 사용합니다
  • 입력을 검증하려면 반환값을 확인합니다
  • 공백을 건너뛰려면 %c 앞에 공백을 넣습니다

자주 묻는 질문

“scanf와 입력” 강의는 무료인가요?

네 — “scanf와 입력” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C Academy 강의 전체를 잠금 해제할 수 있습니다. C Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“scanf와 입력”에서 뭘 배우나요?

사용자 입력을 읽습니다 브라우저에서 직접 실행하는 실습 코드로 C Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“scanf와 입력” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. printf 형식 지정자
  2. scanf와 입력
  3. 너비, 정밀도, 플래그
  4. 흔한 입출력 함정
← C Academy(으)로 돌아가기