2013-09-23 2 views
0

루프에서 printfs를 사용하여 출력을 한 줄에 혼합하지 않고 두 줄로 인쇄하려고합니다. 이처럼C에서 세로로 인쇄하는 방법은 무엇입니까?

: 나는 위의 printf에서 printf("| %-6d", Celsius);을 추가 할 때, 처음의 printf의 중간에/바로 옆을 인쇄

| -508.00 | -463.00 | -418.00 | -373.00 | -328.00 | -283.00 | 

: 생산

printf("| %-7.2f ", Fahrenheit); 

. 동일한 행에 혼재 아닌 값의 두 세트의

| -508.00 | -463.00 | -418.00 | -373.00 | -328.00 | -283.00 | 
| -300 | -275 | -250 | -225 | -200 | -175 | -150 | -125| 

:

는 I 출력처럼 원한다. 내 코드의

부분 :

for(Celsius = CelsiusMin;Celsius <= CelsiusMax; Celsius += CelsiusStep) 
    { 
     Fahrenheit = FahrenheitZero + Celsius * CelsiusToFahrenheit; 

    printf("| %-7.2f ", Fahrenheit); 
    printf("| %-6d", Celsius); 

    } 
    return EXIT_SUCCESS; 
} 
+0

안녕하십니까. 'printf()'줄보다 많은 코드를 보여주십시오. – chux

+0

내가 생각하는 것을 반영하도록 질문을 편집했습니다 ... 의도하지 않은 것이면 다시 돌려보십시오. –

답변

-1

당신은 출력을 정렬하는 "\의 t"를 사용할 수 있습니다.

+1

그게 문제라고 생각하지 않습니다. OP는 한 줄에 화씨 값을, 그리고 다음 줄에 섭씨 값을 혼합하려고합니다. –

+0

질문을 편집하기 전에 답글을 게시했습니다. 예, "\ t"는 F와 C 온도를 동시에 인쇄하려고하면 작동하지 않습니다. – Rahul

2

printf() 문장의 줄을 1 줄에 쓰고 두 번째 줄을 printf() 줄 2 줄에 직접 쓰는 것은 불가능하므로 위조해야합니다.

당신은 아마 출력의 두 라인을 구축 뭔가를해야하고, 그들이 준비가되면 다음을 인쇄 :

char line1[128]; 
char line2[128]; 
char *next1 = line1; 
char *next2 = line2; 

for (int c = -325; c <= -125; c += 25) 
{ 
    double f = (c + 40.0) * (9.0/5.0) - 40.0; 
    next1 += sprintf(next1, "| %-7.2f ", f); 
    next2 += sprintf(next2, "| %-7d ", c); 
} 

printf("%s|\n", line1); 
printf("%s|\n", line2); 

샘플 출력 :

| -553.00 | -508.00 | -463.00 | -418.00 | -373.00 | -328.00 | -283.00 | -238.00 | -193.00 | 
| -325 | -300 | -275 | -250 | -225 | -200 | -175 | -150 | -125 | 

변환 공식은보다 간단 당신이 볼 수있는 평범한 것이고, ° F에서 ° C로 또는 그 반대로 변환 할 때 대칭입니다. 차이는 변환 계수 (9.0/5.0)(5.0/9.0)입니다. -40 ° C = -40 ° F에 의존합니다. 사용해보기 :

  • C =  0°C; (C+40) = 40; (C+40)*9 = 360; (C+40)*9/5 = 72; (C+40)*9/5-40 = 32°F
  • F = 32°F; (F+40) = 72; (F+40)*5 = 360; (F+40)*5/9 = 40; (F+40)*5/9-40 =  0°C.

섭씨도는 double으로 인쇄하면 좋을 수도 있습니다. 내가 선택한 정수 표현을 유지했지만 두 줄에 숫자가 정렬되어 있는지 확인했습니다.

참고 : 절대 값은 -273.15 ° C, 0K, -459.57 ° F입니다. 따라서 존재하지 않는 온도를 인쇄하려고합니다.

관련 문제