본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 scanf 함수 표준 입력장치로부터 서식에 맞춘 입력 받기

C언어 scanf 함수 표준 입력장치로부터 서식에 맞춘 입력 받기

· 댓글개 · 바다야크

C scanf() 표준 입력장치로부터 서식에 맞춘 입력 받기 함수

표준 입력 장치로부터 서식을 갖춘 데이터를 입력받습니다.

  • 헤더: stdio.h
  • 형태: int scanf(const char * format, ... )
  • 인수: char *format 서식 문자열
  • 반환: int 입력된 항목 수를 반환하며, 오류가 발생하면 EOF를 반환

서식을 갖춘다는 것은 입력을 어떤 모양에 맞추어 입력을 받는다는 것입니다. 아래의 서식에 사용하는 변환 문자열을 참고하세요. 주의할 점은 서식에 맞추어 입력하질 못하면 다음 scanf까지 모두 에러가 발생하므로 조심하여야 합니다. 예제의 결과를 확인하세요.

변환 문자열 의미
%o 8진 정수 형식으로 입력
%d 10진 정수 형식으로 입력
%ld long형 10진 정수 형식으로 입력
%x 16진 정수 형식으로 입력
%f float 형 형식으로 입력
%lf double 형 형식으로 입력
%c 문자 형식으로 입력
%s 문자열 형식으로 입력

C언어 scanf() 함수 예제

#include <stdio.h>

int main( void)
{
   int   n_num;
   float   f_num;
   char  str[1024];
   int   ret;

   ret   = scanf( "%d", &n_num);                      // 10진수를 받습니다.
   printf( "ret=%d %d\n", ret, n_num);

   ret   = scanf( "%d%f", &n_num, &f_num);            // 10진수와 실수를 받습니다.
   printf( "ret=%d %d %f\n", ret, n_num, f_num);

   ret   = scanf( "%d%f%s", &n_num, &f_num, str);     // 10진수, 실수, 문자열 하나를 받습니다.
   printf( "ret=%d %d %f %s\n", ret, n_num, f_num, str);

   return 0;
}

C언어 scanf() 함수 예제 실행 결과

]$ ./a.out
123
123
ret=1 123
123 213.45                    <- 서식에는 공백이 없어도 구분을 위해 공백을 삽입
ret=2 123 213.449997
123 123.45 badayak.com
ret=3 123 123.449997 badayak.com
]$ ./a.out
badayak.com                   <- 수자로 변경될 수 없는 문자열을 입력하면
ret=0 0                       <- 이후로 입력이 없어도 계속 EOF를 반환하고 프로그램 종료
ret=0 0 0.000000
ret=0 0 0.000000
]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.