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