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
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 strnlen() 문자열 길이 구하기 함수 (4) | 2020.07.05 |
---|---|
C언어 파일 열기 함수 fopen() (0) | 2020.07.04 |
C언어 파일 읽기 함수 read() (0) | 2020.06.28 |