Line (옛날 한글에서 그리기 모드 같은 라인)의 아스키 값?
글쓴이: kjw7945 / 작성시간: 월, 2005/08/15 - 6:25오전
예를 들면 다음과 같은 것을 그리려고 합니다.
(이쁘게 그리기 위한 방법이랄까요? ^^)
┌─────────┬─────────┬────────┐
이것을 printf로 값을 넣어서 찍으려고 합니다. 그런데 아스키
값이 존재 하지 않습니다. 따라서 이런 라인을 그리려면
콘솔에서 어떻게 해야 할까요?
그래서 다음과 같은 코드로 아스키 값이 존재하지 않은걸
(존재 하지 않는다기보단..) 적어도 2바이트 값을 가진다는
걸 알 수 있었습니다.
include <stdio.h> int main() { char *a="┌"; printf("%s\n", a); return 0; }
어떤 해결 방법이 있을까요..?
( Ps. 현 상황으로는 값을 읽어서 찍어야 합니다.. 즉
printf("%c", value); 와 같은 형태로 찍을 수 있어야
합니다.. printf("┌────────"); 이런식의 접근은
안됩니다...)[/code]
Forums:
자문자답이네요..[code:1]int main()
자문자답이네요..
로 값을 알아 낸후
로 해결했습니다...(왠지 껄끄러운 듯한 해결이 된듯...)
그러나 이상한건 unsigned int나 unsigned long은 되지 않고
unsigned long long만 제대로 된 결과값을 찍는다는....
이상하네요 분명 값은 32비트를 넘어가는 수가 아닌데....
(unsigned int 끝이 4294967295로 알고 있습니다만...)
[quote="kjw7945"][code:1]int main(&#
매우 위험한 코드입니다. 대부분의 경우 한 프로그램에서 선언된 문자열이 다른 프로그램에서 유효할 가능성은 매우 낮고, 위와 같은 방법으로 포인터를 사용할 경우 엉뚱한 곳을 참조할 수 있습니다.
2바이트 문자의 문자값을 알아 내려면 다음과 같이 해야 합니다.
이렇게 해서 실행하면 ─는 "\xa6\xa1", ┌는 "\xa6\xa3"과 같다는 것을 알 수 있습니다. (물론 인코딩마다 다 다릅니다만 euc-kr 기준으로) 그러면 다음과 같이 실행하면 되겠죠.
그런데 왜 %c만을 고집하나요? 그냥 다음과 같이 문자열로 써도 될 것 같은데요.
- 토끼군
답변 감사합니다.그리고 제가 글을 잘못 썼군요....%c만
답변 감사합니다.
그리고 제가 글을 잘못 썼군요....
%c만을 써야 하는게 아니라...
변수를 인자로 주어서 찍기만 하면 됩니다.
즉 %s로 찍으면 됩니다...
다시한번 답변 감사드립니다. ^^
댓글 달기