int fprintf(FILE *fp, const char * format, …); 파일 스트림에 포멧을 지정하여 출력하는 함수
입력 매개 변수 리스트
fp 출력 파일 스트림
format 포멧 문자열, 출력 포멧은 printf 함수와 같습니다.
… 가변 인자 리스트
반환 값
성공 시 출력 문자 개수, 실패 시 음수
사용 예
//C언어 표준 라이브러리 함수 가이드 //int fprintf(FILE *fp, const char * format, ...); 파일 스트림에 포멧을 지정하여 출력하는 함수 //다양한 포멧 지정을 사용하여 파일에 출력 #pragma warning(disable:4477) #include <limits.h> #include <math.h> #include <stdio.h> int main(void) { FILE *fp; fopen_s(&fp, "output.txt", "wt");//파일 열기 if (fp == NULL) { perror("fopen 실패"); return; } //다양한 포멧 지정을 사용하여 출력 fprintf(fp, "================type====================\n"); fprintf(fp, "1. 십진수로 출력: % -d \n", 123); fprintf(fp, "2. 부호있는 십진수로 출력: %i \n", 123); fprintf(fp, "3. 부호없는 8진수로 출력: %o \n", 123); fprintf(fp, "4. 부호없는 십진수로 출력: %u \n", 123); fprintf(fp, "5. 부호없는 16진수로 출력(소문자): %x \n", 123); fprintf(fp, "6. 부호없는 16진수로 출력(대문자): %X \n", 123); fprintf(fp, "7. 부동 소수점 표기로 출력: %f \n", 123.45); fprintf(fp, "8. 지수형 표기로 출력(소문자): %e \n", 123.45); fprintf(fp, "9. 지수형 표기로 출력(대문자): %E \n", 123.45); fprintf(fp, "10. 간단한 표기로 출력(소문자): %g \n", 123.45); fprintf(fp, "11. 간단한 표기로 출력(대문자): %G \n", 123.45); fprintf(fp, "12. 문자 출력: %c \n", 'a'); fprintf(fp, "13. 문자열 출력: %s \n", "Hello"); fprintf(fp, "14. 퍼센트 문자 출력: %%\n"); fprintf(fp, "15. 메모리 주소 출력: %p \n", "Hello"); fprintf(fp, "16. long long 형식 출력: %lld\n", 0x123456789012345); fprintf(fp, "================flag====================\n"); fprintf(fp, "1. flag 지정하지 않고 10진수로 출력: %8d \n", 123); fprintf(fp, "2. flag에 -를 지정하여 10진수로 출력: %-8d \n", 123); fprintf(fp, "3. flag에 +를 지정하여 10진수로 출력: %+d\n", 123); fprintf(fp, "4. flag 지정하지 않고 8진수로 출력: %o\n", 123); fprintf(fp, "5. flag에 #을 지정하여 8진수로 출력: %#o\n", 123); fprintf(fp, "6. flag 지정하지 않고 16진수로 출력:%X\n", 123); fprintf(fp, "7. flag에 #을 지정하여 16진수로 출력:%#X\n", 123); fprintf(fp, "===========width와 .prec, modifier ======\n"); fprintf(fp, "1.flag #을 지정하여 16진수로 출력(대문자): %#X \n", 0x123456); fprintf(fp, "2.flag #, modifier h를 지정하여 16진수로 출력(대문자): %#hX \n", 0x123456); fprintf(fp, "3.flag #, width 12 지정하여 16진수로 출력(대문자): %#12X \n", 0x123456); fprintf(fp, "4.flag #, width 012 지정하여 16진수로 출력(대문자): %#012X \n", 0x123456); fprintf(fp, "5. .prec를 .3을 지정하여 부동 소수점 표기로 출력: %.3f \n", 123.456789); fprintf(fp, "===========1234567890123 출력 ===========\n"); //테스트를 위해 의도적으로 큰 수를 다양한 포멧으로 출력 //4477 경고 메시지는 맨 위에 #pragma 매크로로 disable 시킴 fprintf(fp, "1.hhd 사용: %hhd\n", 1234567890123); fprintf(fp, "2.hd 사용:%hd\n", 1234567890123); fprintf(fp, "3.ld 사용:%ld\n", 1234567890123); fprintf(fp, "4.lld 사용:%lld\n", 1234567890123); fprintf(fp, "5.jd 사용:%jd\n", 1234567890123); fprintf(fp, "6.zd 사용:%zd\n", 1234567890123); fprintf(fp, "7.td 사용:%td\n", 1234567890123); fprintf(fp, "========pow(10.0,-50)출력======\n"); fprintf(fp, "Lf 사용:%.50Lf\n", pow(10.0, -50)); //파일 닫기 fclose(fp); return 0; }
새로 만들어진 output.txt 내용
================type==================== 1. 십진수로 출력: 123 2. 부호있는 십진수로 출력: 123 3. 부호없는 8진수로 출력: 173 4. 부호없는 십진수로 출력: 123 5. 부호없는 16진수로 출력(소문자): 7b 6. 부호없는 16진수로 출력(대문자): 7B 7. 부동 소수점 표기로 출력: 123.450000 8. 지수형 표기로 출력(소문자): 1.234500e+02 9. 지수형 표기로 출력(대문자): 1.234500E+02 10. 간단한 표기로 출력(소문자): 123.45 11. 간단한 표기로 출력(대문자): 123.45 12. 문자 출력: a 13. 문자열 출력: Hello 14. 퍼센트 문자 출력: % 15. 메모리 주소 출력: 00867D70 16. long long 형식 출력: 81985529205302085 ================flag==================== 1. flag 지정하지 않고 10진수로 출력: 123 2. flag에 -를 지정하여 10진수로 출력: 123 3. flag에 +를 지정하여 10진수로 출력: +123 4. flag 지정하지 않고 8진수로 출력: 173 5. flag에 #을 지정하여 8진수로 출력: 0173 6. flag 지정하지 않고 16진수로 출력:7B 7. flag에 #을 지정하여 16진수로 출력:0X7B ===========width와 .prec, modifier ====== 1.flag #을 지정하여 16진수로 출력(대문자): 0X123456 2.flag #, modifier h를 지정하여 16진수로 출력(대문자): 0X3456 3.flag #, width 12 지정하여 16진수로 출력(대문자): 0X123456 4.flag #, width 012 지정하여 16진수로 출력(대문자): 0X0000123456 5. .prec를 .3을 지정하여 부동 소수점 표기로 출력: 123.457 ===========1234567890123 출력 =========== 1.hhd 사용: -53 2.hd 사용:1227 3.ld 사용:1912276171 4.lld 사용:1234567890123 5.jd 사용:1234567890123 6.zd 사용:1912276171 7.td 사용:1912276171 ========pow(10.0,-50)출력====== Lf 사용:0.00000000000000000000000000000000000000000000000001