본문 바로가기

sprinf, sscanf 함수

1. sprintf 함수

 

#include <stdio.h>

 

int sprintf(char *buffer, const char *format, argument-list);

 

 

printf 함수와 같이 서식에 맞춰 출력한다.

다만 출력하는 위치가 모니터가 아닌  buffer  배열일 뿐이다.

그 외에는 모두 printf 함수와 동일하다.

 

반환값은 성공적으로 출력한 문자의 개수(NULL 문자 제외). 에러 발생 시 EOF를 반환한다.

 

이 함수의 특성 상 숫자 데이터를 문자열로 바꾸는 데에 유용하다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
    char str[200];
    int num1 = 123;
    double num2 = 3.1415;
 
    sprintf(str, "%d", num1);
    printf("정수 -> 문자열: %s\n", str);
 
    sprintf(str, "%.2f", num2);
    printf("실수 -> 문자열: %s\n", str);
 
    sprintf(str, "%e", num2);
    printf("실수 -> e 표기법 문자열: %s\n", str);
 
    return 0;
}
cs

 

 

 

 

서식에 맞춰 그대로 문자열 형태로 저장된다.

 

 

 

 

2. sscanf 함수

 

#include <stdio.h>
int sscanf(const char *buffer, const char *format, argument-list);

 

역시 scanf 함수와 모든 게 동일하나, 키보드가 아닌  buffer 에서 입력받는다는 점만 다르다.

반환값은 성공적으로 읽은 데이터의 개수.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int main()
{
    double num = 3.1415;
    char str1[100];
    char str2[100];
    double result1;
    double result2;
    
    printf("tnum: %f\n", num);
    
    sprintf(str1, "%f", num);
    sscanf(str1, "%lf"&result1);
 
    sprintf(str2, "%e", num);
    sscanf(str2, "%le"&result2);
    
    printf("result1: %f\n", result1);
    printf("result2: %e\n", result2);
 
    return 0;
}
cs

 

 

서식에 맞춰 읽어온다.

 

 

'Programming > C' 카테고리의 다른 글

문자열을 숫자로 변환하는 함수  (0) 2019.05.18
문자열 비교 함수  (0) 2019.05.14
문자열 길이 측정, 복사, 연결 함수  (0) 2019.05.13
문자열 입출력 함수  (0) 2019.05.07
문자 입출력 함수  (0) 2019.05.05