문제

는 방법은 문자열 패드와 공간 왼쪽에 사용하는 경우 printf?

예를 들면,인쇄하고 싶은"Hello"40 공간 앞습니다.

또한,이 문자열로 인쇄로 구성되어 있는 여러 라인입니다.이 필요한가요를 인쇄하는 각 라인에는 별도로?

편집:그걸 분명히 하기 위해서,내가 원하는지 정확히 40 공간을 인쇄하기 전에 모든 라인입니다.

도움이 되었습니까?

해결책

"hello"라는 단어가 40 자의 열에 인쇄하려면 왼쪽에 공간이 패딩되어 다음을 사용하십시오.

char *ptr = "Hello";
printf("%40s\n", ptr);

그것은 당신에게 35 개의 공간을 줄 것입니다. 그런 다음 "hello"라는 단어입니다. 이것은 열을 얼마나 넓게 원하는지 알 때 물건을 포맷하는 방법이지만 데이터가 변경됩니다 (음, 그것은 하나 당신이 할 수있는 방법).

정확히 40 개의 공간을 원한다면 일부 텍스트를 원한다면 40 개의 공간을 상수로 저장하고 인쇄하십시오. 여러 줄을 인쇄 해야하는 경우 여러 줄을 사용하십시오. printf 위의 내용과 같은 진술, 또는 루프에서 수행하여 값을 변경합니다. ptr 매번.

다른 팁

이 함수를 사용하여 출력을 들여 쓰기 (예 : 트리 구조를 인쇄하기 위해). 그만큼 indent 문자열 이전의 공간 수입니다.

void print_with_indent(int indent, char * string)
{
    printf("%*s%s", indent, "", string);
}
int space = 40;
printf("%*s", space, "Hello");

이 문을 예약하의 행 40 문자를 인쇄 문자열의 끝에서 행(를 제거하 여분의 공간은 총 행 길이가 일정하에서 40).동일한 사용할 수 있습에 대한 캐릭터와 정수를 다음과 같다:

printf("%*d", space, 10);
printf("%*c", space, 'x');

이 방법을 사용하여 매개변수를 결정하는 공간은 어디서 유용한 변수 번호의 공간을 필요합니다.이러한 문은 여전히 작동할 것입니다 정수 리터럴 다음과 같다:

printf("%*d", 10, 10);
printf("%*c", 20, 'x');
printf("%*s", 30, "Hello");

이 나 같은 사람을 미래에 있습니다.

문자열 전에 정확히 40 개의 공간을 원한다면 그냥해야합니다.

printf("                                        %s\n", myStr );

그것이 너무 더러워지면, 당신은 할 수 있습니다 (그러나 40 개의 공간을 수동으로 입력하는 것보다 느리게됩니다). printf("%40s%s", "", myStr );

문자열이 40 열에서 줄을 늘리려는 경우 (즉, 최대 39 개의 공간이 진행되어 가장 올바른 문자가 40 열에 있도록) 다음을 수행하십시오. printf("%40s", myStr);

또한 문자열 다음을 수행하여 "최대 40 개의 공간"을 넣을 수도 있습니다. printf("%-40s", myStr);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top