C언어 파일로 서식에 맞추어 문자열 출력 함수 dprintf()

2020. 3. 18. 07:04 컴퓨터/프로그래밍

C함수 파일로 서식에 맞추어 문자열 출력 dprintf()

서식에 맞추어 파일로 출력합니다.

  • 헤더: stdio.h
  • 형태: int dprintf( int fd, const char *format, ...)
  • 인수: int fd 파일 디스크립터
    const char *format 출력할 데이터 서식
    ... 서식에 맞춘 변수 나열
  • 반환: int 출력된 문자 수를 반환하며 오류가 발생하면 음수를 반환합니다.
reference

서실 변환 문자열

변환 문자열 의미
%o 8진 정수 형식으로 입력
%d 10진 정수 형식으로 입력
%ld long형 10진 정수 형식으로 입력
%x 16진 정수 형식으로 입력
%f float 형 형식으로 입력
%lf double 형 형식으로 입력
%c 문자 형식으로 입력
%s 문자열 형식으로 입력

서식 문자열에 옵션을 추가하여 좀 더 다양하게 출력할 수 있습니다.


변환 문자열 출력 의미
printf("%d", 123) 123 표준 출력장치로 출력
printf("%5d", 123) ___123 10진수를 5자리에 맞추어 출력, 123앞에 공백 2개 추가
printf("%-5d", 123) 123__ 10진수를 5자리에 맞추어 출력, 왼쪽 맞춤, 오른쪽에 공백 추가
printf("%f", 1.234567) 1.234567 16진 정수 형식으로 출력
printf("%4f", 1.234567) 1.2346 소쉄 이하 4자리 출력, 반올림
printf("%7.2f", 1.234567) ___1.23 소숫점 포함해서 전체 7자리, 소수점 이하 2자리. 공백 3개가 앞 부분에 추가됩니다.
printf("%s", "byadayak.com") byadayak.com 문자열 출력
printf("%20s", "byadayak.com") ________byadayak.com 문자열 출력
printf("%.8s", "byadayak.com") byadayak.com 문자열이 더 길면 그대로 출력
printf("%.10s", "byadayak.com") byadayak 문자열이 더 길면 잘라서 출력
printf("%-20s", "byadayak.com") byadayak.com________ 문자열을 왼쪽 맟춤으로 하여 오른쪽에 모자르는 자리를 공백으로 메꿈
printf("%10.2s", "byadayak.com") ________by 문자열 앞의 두 문자만 출력하되 앞에 공문자를 채워서 전체 10 문자로 출력
printf("%-10.2s", "byadayak.com") by________ 문자열 앞의 두 문자만 출력하되 뒤에 공문자를 채워서 전체 10 문자로 출력
 

예제

#include <stdio.h>         // puts()
#include <string.h>        // strlen()
#include <fcntl.h>         // O_WRONLY
#include <unistd.h>        // write(), close()

#define  BUFF_SIZE   1024

int main()
{
   int    fd;

   if ( 0 < ( fd = open( "./test.txt", O_WRONLY))){
      dprintf( fd, "%d %o %s\n", 123, 123, "badayak.com");
      dprintf( fd, "%d %o %s\n", 321, 321, "badayak.com");
      close( fd);
   } else {
      printf( "파일 열기에 실패했습니다.\n");
   }
   return 0;
}

실행 결과

]$ ./a.out
]$ cat text.txt
123 173 badayak.com
321 501 badayak.com
]$
이 댓글을 비밀 댓글로