저도 모르던 건데 찾아봤더니, 정수형에서 . 이후의 숫자는 실제로 출력될 글자의
최소 길이를 뜻한다는군요. 글자수가 더 적으면 0으로 채우고요. 그러니까
printf("%.2x", 1u) 하면 "01"이 출력된다는 뜻이지요.
ps. 입출력 서식은 너무 복잡해요. :?
"01" 이런식으로 출력이 된다.. 흠..
처음에 이문제를 질문으로 올리게 된 이유가 원본이 된 소스에서 실제로 "01"과 같은 식으로 사용할려고 "%.2x"형식을 사용하였더라구요.... 그래서 그 소스를 긁어다가 다른 컴파일러를 사용하는 곳에다 붙여놓고 사용하였는데... 그냥 "1"이런 식으로 나오는것이었습니다.
앞에 부족한 자리수만큼 "0"을 채우는 것은 "%02x" 이런식이었다 라고 생각하고 그렇게 고쳐서 문제를 해결하긴 했는데...
"%.2x"라는 것은 정말 처음 봤거든요....
컴파일러의 종류를 말씀드리면 좋겠지만.. 정확한 것을 몰라서요..
gcc는 아니었고 어디에서 비싼 라이센스 주고 임베디드 용으로 사온것이었습니다.
어쨌던 그게 자릿수만큼 0을 채우는 것이 맞다니.. 신기하네요...
아참.. 추가적으로 그 내용은 어디서 찾으셨는지 혹시 기억하시면 좀 답글을 달아주시면 좋을텐데.. 어디인지 기억하지 못하실려나?? ^^
아참.. 추가적으로 그 내용은 어디서 찾으셨는지 혹시 기억하시면 좀 답글을 달아주시면 좋을텐데.. 어디인지 기억하지 못하실려나?? ^^
저는 표준문서를 참고했습니다만 TCPL이나 웬만한 man 페이지에도 나올 것 같습니다.
Quote:
o,u,x,X : [...] The precision specifies the minimum number of digits to appear;
if the value being converted can be represented in fewer digits, it is expanded
with leading zeros. The default precision is 1. The result of converting a
zero value with a precision of zero is no characters.
%x 는.. hex code 로 출력하라는 옵션인걸로 기억하는데요 :)
%x 는.. hex code 로 출력하라는 옵션인걸로 기억하는데요 :)
오타가 아닐까 싶습니다..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
다른 예제 이기는 하지만...
버클리 DB 를 사용하면
printf("%s%.*s : %.*s\n", msg,
(int)key->size, (char *)key->data,
(int)data->size, (char *)data->data);
이런 구문이 있습니다.
%.*s 에 대해서 인자가 두개지요 크기와 시작 주소....
이와 비슷한 것이 아닐까요 ?
저도 포맷 스트링에 대해서는 잘 몰라서 ^^
가자 해외로 ~ .. 돈 벌러.
man 3 printf.은 precision 값이라고 합니다.
man 3 printf
.은 precision 값이라고 합니다.
저도 모르던 건데 찾아봤더니, 정수형에서 . 이후의 숫자는 실제로 출력될
저도 모르던 건데 찾아봤더니, 정수형에서 . 이후의 숫자는 실제로 출력될 글자의
최소 길이를 뜻한다는군요. 글자수가 더 적으면 0으로 채우고요. 그러니까
printf("%.2x", 1u) 하면 "01"이 출력된다는 뜻이지요.
ps. 입출력 서식은 너무 복잡해요. :?
[quote="doldori"]저도 모르던 건데 찾아봤더니, 정수형에서
"01" 이런식으로 출력이 된다.. 흠..
처음에 이문제를 질문으로 올리게 된 이유가 원본이 된 소스에서 실제로 "01"과 같은 식으로 사용할려고 "%.2x"형식을 사용하였더라구요.... 그래서 그 소스를 긁어다가 다른 컴파일러를 사용하는 곳에다 붙여놓고 사용하였는데... 그냥 "1"이런 식으로 나오는것이었습니다.
앞에 부족한 자리수만큼 "0"을 채우는 것은 "%02x" 이런식이었다 라고 생각하고 그렇게 고쳐서 문제를 해결하긴 했는데...
"%.2x"라는 것은 정말 처음 봤거든요....
컴파일러의 종류를 말씀드리면 좋겠지만.. 정확한 것을 몰라서요..
gcc는 아니었고 어디에서 비싼 라이센스 주고 임베디드 용으로 사온것이었습니다.
어쨌던 그게 자릿수만큼 0을 채우는 것이 맞다니.. 신기하네요...
아참.. 추가적으로 그 내용은 어디서 찾으셨는지 혹시 기억하시면 좀 답글을 달아주시면 좋을텐데.. 어디인지 기억하지 못하실려나?? ^^
새해인데.. 올 한해 동안 좋은 일만 있길 바랍니다...
[quote="bejoy4him"]아참.. 추가적으로 그 내용은 어디서
저는 표준문서를 참고했습니다만 TCPL이나 웬만한 man 페이지에도 나올 것 같습니다.
RTFM하지 않고 도움 주신 분들께 모두 감사합니다.표준문서 읽는
RTFM하지 않고 도움 주신 분들께 모두 감사합니다.
표준문서 읽는것에 익숙해 져야하는데...
에궁 에궁...
댓글 달기