>백엔드 개발 >C++ >C에서 앞에 0을 사용하여 출력 형식을 지정하려면 어떻게 해야 합니까?

C에서 앞에 0을 사용하여 출력 형식을 지정하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-04 21:44:15880검색

How Can I Format Output with Leading Zeros in C  ?

C에서 앞에 0이 있는 출력 형식 지정

C에서 출력 형식 지정은 데이터를 특정 방식으로 표시하는 데 중요합니다. 일반적인 시나리오 중 하나는 printf가 d를 처리하는 방법과 유사하게 앞에 0을 인쇄하는 것입니다. printf를 사용하는 것은 옵션이지만 C 스트림 출력 연산자(<<)를 선호할 수 있습니다.

앞에 0을 얻는 한 가지 옵션은 아래와 같이 sprintf를 사용하여 형식화된 문자열을 출력 연산자와 연결하는 것입니다. :

std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;

하지만 IO를 사용하는 더 깔끔한 솔루션이 있습니다. 조작기:

#include <iomanip>

using namespace std;

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

// or without 'using namespace std;'
std::cout << std::setw(5) << std::setfill('0') << zipCode << std::endl;</p>
<p>setw(width)는 필드 너비를 설정하고, setfill(char)은 나머지 공간을 채우는 데 사용되는 문자를 지정합니다. 이 경우 '0'은 앞에 0을 추가하는 데 사용됩니다.</p>
<p>이러한 조작자는 cout 개체의 전역 상태에 영향을 미칩니다. 나중에 사용할 때 의도하지 않은 효과를 피하려면 플래그를 재설정하여 실행 취소해야 합니다.</p>
<p>간결한 형식을 선호하는 경우 fmt 라이브러리 사용을 고려하세요.</p>
<pre class="brush:php;toolbar:false">cout << fmt::format("{:05d}", zipCode);

C 20 이상에서는 - std::format을 지원하며 C 23에서는 std::print를 도입하여 형식화에 훨씬 더 편리한 옵션을 제공합니다. 출력.

우편번호와 같이 음수가 아닌 숫자의 경우 위 코드로 충분합니다. 그러나 음수를 처리해야 하는 경우 std::internal을 추가하여 부호와 크기 사이에 채우기 문자를 배치하세요.

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

위 내용은 C에서 앞에 0을 사용하여 출력 형식을 지정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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