C/C++ 예제

시삽: 레드플러스 님 
게시판 이동:
 제목 : C 언어 강의: scanf를 엔터키를 기준으로 여러 행으로 값을 입력 받기
글번호: 403
작성자:
작성일: 2022/01/09 오전 6:14:00
조회수: 2937

scanf() 함수를 사용하여 엔터키를 기준으로 여러 행으로 데이터를 입력받을 때, 엔터키가 다음 행에 영향을 주는 경우가 있습니다. 단순히 Windows 환경에서만 사용한다면 fflush(stdin); 코드를 scanf() 함수 사용 다음 라인에 넣어주던 방식도 있었는데요. 이것은 리눅스에서는 실행되지 않습니다. 그래서 여러 가지 해결책이 있는데요. 그 중에서 하나는 scanf() 함수의 서식 지정자 앞에 공백 한 칸을 두어 공백과 엔터를 무시한 문자열만 입력을 받을 수 있도록 할 수 있습니다.

 

 

코드: 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 _;

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

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

    return 0;
}





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

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

 

 

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 (이전 글이 존재하지 않습니다.)
현재글 C 언어 강의: scanf를 엔터키를 기준으로 여러 행으로 값을 입력 받기 - 2022-01-09 2937
다음글 C 언어: scanf 사용해서 표준 입력인 콘솔로부터 나이를 정수로 입력 받아 출력 - 레드플러스 2022-01-07 2816
 
손님 사용자 Anonymous (손님)
로그인 Home