C,C++ & Linux

C/C++ printf(3), fprintf(3)

KyooDong 2020. 5. 22. 12:20
728x90

함수 기능

주어진 형식에 맞추어진 문자열을 파일에 출력하는 함수입니다.

 

printf() 함수는 stdout(표준 출력 파일)에 출력합니다.

 

함수 원형

#include <stdio.h>

int printf(const char *format, ...);
int fprintf(FILE *fp, const char *format, ...);

 

매개변수

format

형식 지정자

 

% 와 묶어서 다양한 형식을 지정할 수 있습니다.

 

플래그

플래그 설명
- 필드 안에서 왼쪽으로 정렬
+ 항상 부호를 표시
(공백) 부호가 없는 경우 공백을 붙임
# 다른 형식을 이용해서 변환
0 필드 앞쪽의 빈 공간을 0으로 채움

길이 수정자

길이 수정자 설명
hh char
h short
l long 또는 넓은 문자
ll long long
j intmax_t 또는 unimax_t
z size_t
t ptrdiff_t
L long double

변환 형식

변환 형식 설명
d, i 부호 있는 10진수
o 부호 없는 8진수
u 부호 없는 10진수
x, X 부호 없는 16진수
f, F double
e, E 지수 형식의 double
g, G 변환되는 값에 따라 f 또는 e 로 해석
a, A 16진 지수 형식의 double
c 문자
s 문자열
p void 포인터
n 부호 있는 정수를 가리키는 포인터
% %문자 자체
C 넓은 문자
S 넓은 문자열

 

 

...

가변 인자로 여러 개의 파라미터를 ,(쉼표)로 엮어서 지정할 수 있습니다.

 

fp

출력할 대상 파일 포인터

반환값

성공 시 파일에 출력된 글자 수 리턴

에러 시 음의 정수 리턴

예제

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


int main(int argc, char *argv[]) {
    char *text = "My test txt!\n";
    FILE *fp;

    fp = fopen("ssu_test.txt", "w");
    printf("%s", text);
    fprintf(fp, "%s", text);
    exit(0);
}

 

결과

 

 

 

 

 

 

 

 

 

 

리눅스시스템프로그래밍 저자 : 홍지만
https://book.naver.com/bookdb/book_detail.nhn?bid=14623672

책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)