2016-09-17 3 views
0

배열의 데이터를 인쇄하는 for 루프가 있지만 모두 인쇄 할 수 있도록 인쇄해야합니다.printf 출력의 서식을 지정하는 방법

1. 123124124 24 
2. 12412452 56 
3. 12312  12 
. 
. 
. 
10. 12412412 12 

나는 printf("%d.%d%d\n", x, y, z)을 갖는다; 어떤 도움을 주셔서 감사합니다!

+2

의 printf ("% - * s는 -9d 차원 \ n을 % %", 4의 printf ("%의 D ', X), Y, Z". ")'과 같이, ' – BLUEPIXY

답변

3
printf("%-3d%-12d%d\n", x, y, z); 

빼기 기호 다음에 오는 숫자 다음에 오는 숫자는 필드의 최소 너비입니다. 개수 열의 경우 최소 3 열 이상이어야합니다. 그러나 우리는 또한 오른쪽에 패드를 붙이고 싶기 때문에 마이너스 기호가 사용됩니다. 최소 폭은 당신이 기간을하려면 (12)이 샘플

http://codepad.org/jJA8v8v8

에서보세요이라는 점을 제외

동일이는 % -12d 간다, 그 인쇄해야 할거야 % s의 문자열로.

+0

가인가 그 기간이 어떻게 생겼는지 보여줄 수 있습니까? –

+0

'printf ("% - 3d % s % -12d % d \ n", x, ".", y, z);'@JMei – Charles

+0

@JMei 제안 된'printf()'는'x' 그리고''. 123124124 24 "'와는 다릅니다. – chux

0
printf("%d. \t %d \t %d \n", x, y, z); 

t는 코드를 멋지게 정렬합니다.

+1

탭과 '멋지게'는 논쟁의 여지가있는 부분입니다. –

+0

하하, 네 말이 맞는 것 같아. 그러나 그들은 그것들을 기둥으로 정렬 할 것입니다. – PL200

0

%-numd 또는 %numd을 사용하여 출력 스타일을 제어하십시오.

num은 원하는 너비를 의미합니다. 다음 번호와 같이 숫자로 바꿉니다 : %-10d 또는 %10d.

-은 왼쪽 정렬을 의미합니다. 그것이 없으면 출력은 오른쪽 정렬됩니다. examle를 들어

: printf("%-5d%5d",123,456) 다음 출력은이 '.' 즉시 (int) x 다음 다음 필요에 따라 채워 원하는대로 123 456

+0

첫 줄의 대괄호 (괄호)는 혼란 스럽습니다. 이것들은'printf' 변환 스펙의 유효한 부분이 아닙니다. –

1

영업 이익의 요구 된 형식이 도전 할 것이다.

@BLUEPIXY은 평소와 같이 멋진 솔루션을 제공합니다. 이는 첫 번째로 인쇄 된 결과 인 x을 이용합니다.

printf("%-*s%-9d%3d\n", 4-printf("%d", x), ".", y, z); 

대체는 double으로 변환하십시오.

"%-#3.0f 인쇄 double, 최소 3 자, 왼쪽 맞춤, 항상 '.'으로, '.' 뒤에 숫자 없음.

//123 123456789 12 
//10. 12412412 12 
//1. 123124124 24 
printf("%-#3.0f %-9d %d\n", (double) x, y, z); 
관련 문제