C 언어 강의: 여러 줄에 걸쳐 값을 입력 받는 방법

  • 2 minutes to read

scanf() 함수를 사용할 때 엔터키 입력이 다음 입력에 영향을 미치는 경우가 종종 발생합니다. 일반적으로 Windows 환경에서는 fflush(stdin); 코드를 사용하여 이 문제를 해결할 수 있지만, 리눅스에서는 작동하지 않습니다. 이를 해결하기 위해 scanf() 함수의 서식 지정자 앞에 공백을 추가하여 공백과 엔터키를 무시하도록 할 수 있습니다.

관련 동영상 강의

다음 동영상에서는 엔터키를 기준으로 여러 행에 걸쳐 데이터를 입력받는 방법을 자세히 설명합니다:

https://youtu.be/BPFJlsAF7bM

코드 예제: scanf_multi_line.c

// scanf_multi_line.c
// 다중 행 입력 처리 예제
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고 방지
#include <stdio.h>

int main(void)
{
    char name[20];
    int age;
    char nick[20];
    int discard; // 반환된 값을 저장하지 않는 변수

    printf("입력\n----\n");
    printf("이름: "); discard = scanf(" %s", name); // 공백을 서식 지정자 앞에 추가
    printf("나이: "); discard = scanf(" %d", &age);
    printf("별명: "); discard = scanf(" %s", nick);

    printf("\n출력\n----\n");
    printf("이름: %s\n", name);
    printf("나이: %d\n", age);
    printf("별명: %s\n", nick);

    return 0;
}
입력
----
이름: 박용준
나이: 21
별명: 레드플러스

출력
----
이름: 박용준
나이: 21
별명: 레드플러스

이 코드는 효과적으로 사용자 입력을 처리하고 결과를 출력하여 사용자가 입력한 값이 정확히 반영됨을 보여줍니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com