%*의 형식 지정자는 무엇을 의미합니까?
유지해야 하는 일부 코드에서 형식 지정자가 발견되었습니다.%*s
이게 뭔지, 왜 사용되는지 누가 말해줄래?
사용 예시는 다음과 같습니다.
fprintf(outFile, "\n%*s", indent, "");
필드의 너비를 동적으로 지정하는 데 사용됩니다.
- 너비는 형식 문자열로 지정되지 않고 형식화해야 하는 인수 앞에 추가 정수 값 인수로 지정됩니다.
따라서 "parameter"는 파라미터 목록에서 뒤에 오는 문자열에 할당하는 공간의 양을 지정합니다.
그렇게,
printf("%*s", 5, "");
와 같다
printf("%5s", "");
파일에 공간을 몇 개 넣어 루프를 회피할 수 있습니다.
printf 및 fprintf에서 사용하는 경우:
printf("%*s", 4, myValue); is equivalent to printf("%4s", myValue);
변수는 최소 너비와 나머지 오른쪽 맞춤 공간으로 표시됩니다.값을 왼쪽으로 맞추려면 음의 정수를 사용합니다.
scanf 및 sscanf에서 사용되는 경우:
/* sscanf example */
#include <stdio.h>
int main ()
{
char sentence []="Rudolph is 12 years old";
char str [20];
int i;
sscanf (sentence,"%s %*s %d",str,&i);
printf ("%s -> %d\n",str,i);
return 0;
}
출력:
Rudolph -> 12
문자열을 무시하기 위해 사용됩니다.
형식 지정자 %4s은 필드 너비 4의 문자열을 출력합니다.즉, printf는 최소 4개의 문자 위치를 가진 값을 표시합니다.
출력되는 값이less
4글자 위치 너비보다 큰 값right justified
기본적으로 필드에 있습니다.
값이 다음과 같은 경우greater
4글자 이상의 너비, 필드 너비expands
적절한 수의 문자를 사용할 수 있습니다.
값을 왼쪽으로 맞추려면 음의 정수를 사용하여 필드 폭을 지정합니다.
참고 자료: Java™ How To Program (얼리 오브젝트), 제10판
NULL 종료(패킹)되지 않은 버퍼에서는 "길이" 필드만 인쇄한다고 생각하여 "%*s"를 사용하지 마십시오.
* fprintf가 n글자의 너비가 될 때까지 출력을 패딩합니다.여기서 n은 수정된 유형으로 나타나는 함수 인수 바로 앞에 저장된 정수 값입니다.
printf("%*d", 5, 10) //will result in "10" being printed with a width of 5.
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
너비는 형식 문자열로 지정되지 않고 형식화해야 하는 인수 앞에 추가 정수 값 인수로 지정됩니다.
예:printf("%*s", 4, myValue);
와 동등하다printf("%4s", myValue);
.
언급URL : https://stackoverflow.com/questions/1000556/what-does-the-s-format-specifier-mean
'programing' 카테고리의 다른 글
Vue 3 스토어를 Vuex 없이 유지하는 방법 (0) | 2022.07.11 |
---|---|
appcompat v7을 사용하여 EditText 최종 라인 색상 변경 (0) | 2022.07.11 |
두 개의 명명된 vuex 모듈 간에 작업을 디스패치하는 방법이 있습니까? (0) | 2022.07.11 |
Larabel 백엔드를 사용하여 풀스택 Vue 프런트엔드를 사용하여 로그인/로그아웃하는 방법 (0) | 2022.07.11 |
Vue-cli 3 - 재료 설계 아이콘 설치 (0) | 2022.07.11 |