|
초보 님이 쓰신 글 :
: 검색해도 안 나와서 질문드립니다.
:
: 1. Tab 을 눌렀을때나 printf 등의 String 출력 함수에서 '\t' 를 입력했을때 글자와 글자 사이에 띄워지는 간격이
: 프로그램마다 다른건지요? 아니면 시스템에 설정되어 있고 그걸 프로그램에서 Default 로 두고 사용자로 하여금
: 재설정이 가능하게 만들어 놓은건가요?
:
: 2. 시스템에 설정되어 있다면, 탭 간격을 알아내는 함수 이름이 뭔가요?
:
: 3. 각 문자마다 Width 가 다른데 어떻게 탭 간격을 정해서 정확히 시작 X 좌표가 맞게 하는건가요?
: 방금 생각하기로는... ASCII CODE 32번인 스페이스 (공백)문자 Width 의 몇배해서 '\t' 이전 문자열이
: 메꾼 영역 다음의 탭 시작 X 좌표에 커서(다음 문자의 시작 X 좌표)를 옮기는 방식이면 될거 같은데
: 정확한 알고리즘 아시는 분 답변부탁드립니다.
탭 키를 누르거나 printf 에 \t 을 이용할 경우에 빈 공간이 생기는게 아니라 tab character가 추가 됩니다.
이 tab character를 가지고 어느 위치에 탭을 맞출지는 에디터가 하는 일이죠.
예를 들어 a(tab)(tab)(tab)b 이렇게 쳐놓고 a 앞에다 space를 추가할 경우 b의 위치가 a 앞에 공백에도 불구하고
움직이지 않는 이유도 이와 같은 이유에서 입니다.
1번 물음에서 말씀하시는 뉘앙스가 빈 공간(space character)이 삽입되는 것처럼 말해서 참고 삼아 알려드립니다^^
|