본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 문자열에서 서식에 맞춘 변수 값 받기 sscanf()

C언어 문자열에서 서식에 맞춘 변수 값 받기 sscanf()

· 댓글개 · 바다야크

C sscanf() 문자열에서 서식에 맞춘 변수 값 받기 함수

문자열로부터 서식을 갖춘 데이터를 입력받습니다.

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

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

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

C언어 sscanf() 함수 예제

#include <stdio.h>

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

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

   ret   = sscanf( "100", "%o", &n_num);  // 8진수를 받습니다.
   printf( "ret=%d %d  %o\n", ret, n_num, n_num);

   ret   = sscanf( "100", "%x", &n_num);  // 8진수를 받습니다.
   printf( "ret=%d %d  %x\n", ret, n_num, n_num);

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

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

   return 0;
}

C언어 sscanf() 예제 실행 결과

]$ ./a.out
ret=1 100 100
ret=1 64 100
ret=1 256 100
ret=2 100 123.449997
ret=3 100 123.449997 badayak.com
]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

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