>백엔드 개발 >C++ >C 스트림이 출력 형식 지정을 위해 printf를 어떻게 대체할 수 있습니까?

C 스트림이 출력 형식 지정을 위해 printf를 어떻게 대체할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-02 02:56:10250검색

How Can C   Streams Replace printf for Output Formatting?

C 스트림으로 출력 형식 지정: printf의 대안

printf와 달리 C 출력 스트림은 다음을 통해 출력 모양을 제어하는 ​​편리한 옵션을 제공합니다. 스트림 조작기 사용 printf(" d", zipCode)와 동일한 형식을 얻으려면 다음 접근 방식을 사용할 수 있습니다.

std::setw 및 std::setfill

std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;

std::setw(5)는 필드 너비를 5로 지정하여 필요한 경우 출력의 왼쪽이 0으로 채워지도록 합니다. std::setfill('0')은 '0'을 추가 공간을 채우는 문자로 정의합니다.

스트림 조작기의 장점

스트림 조작기를 사용하면 여러 가지 이점을 얻을 수 있습니다. :

  • 사용 편의성: 출력 형식을 간결하고 직관적으로 지정하는 방법을 제공합니다. 부피가 큰 printf 문과 비교됩니다.
  • 재사용성: 조작기를 여러 번 재사용하여 기본 스트림에 영향을 주지 않고 출력 형식을 수정할 수 있습니다.

대체 형식 지정 옵션

std::iomanip 라이브러리는 추가 형식을 제공합니다. options:

  • std::setiosflags(ios::left): 출력을 왼쪽 정렬합니다.
  • std::setiosflags(ios::right): 출력을 오른쪽 정렬합니다. .

음성 처리 숫자

음수를 처리해야 하는 경우 std::internal을 사용하여 부호와 크기 사이에 채우기 문자를 배치할 수 있습니다.

std::cout << std::internal << std::setw(5) << std::setfill('0') << zipCode << std::endl;

대안 라이브러리

다음을 제공하는 fmt 라이브러리나 곧 출시될 C 20 표준 사용을 고려해보세요. 다음과 같은 강력한 형식 지정 옵션:

  • fmt::format("{:05d}", zipCode)
  • std::format("{:05d}", zipCode)

이러한 대안은 간결하고 유연한 서식 지정 솔루션을 제공합니다.

위 내용은 C 스트림이 출력 형식 지정을 위해 printf를 어떻게 대체할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.