\t 간격 차이
1152
작성한 질문수 22
#include <stdio.h>
#include <stdlib.h>
struct kid
{
char name[100];
int height;
};
int compare(const void* first, const void* second)
{
if (((struct kid*)first)->height > ((struct kid*)second)->height)
return 1;
else if (((struct kid*)first)->height < ((struct kid*)second)->height)
return -1;
else
return 0;
}
int main()
{
struct kid my_friends[] = {
"Jack Jack", 40, "Geenie", 300, "Aladdin", 170, "Piona", 150
};
const int n = sizeof(my_friends) / sizeof(struct kid);
qsort(my_friends, n, sizeof(struct kid), compare);
for (int i = 0; i < n; i++)
printf("%s \t%d\n", my_friends[i].name, my_friends[i].height);
return 0;
}위는 저의 코드입니다.
강의 5분 45초를 보면 printf()함수에 \t를 통해서 간격을 조정해주는데 교수님의 경우 숫자가 같은 위치에서 시작하는데
저는 왜 40 혼자 멀리 떨어져있을까요?
또 \t를 검색해보면 Tab키와 같이 일정한 간격을 띄움라고 나와있는데 일정한 간격을 어디를 기준으로 띄우는 건가요?
"Jack Jack"의 경우 공백 포함 9글자고
"Geenie의 경우 6글자인데
강의에서 "40", "300"은 같은 위치에서 시작함에 의문이 생깁니다.
답변 1
1
안녕하세요, 답변 도우미 Soobak 입니다.
\t (탭 문자) 는 일반적으로 8 개의 공백 문자로 표현됩니다. 다만, 이는 환경에 따라서 달라질 수 있습니다. (예 : 터미널, IDE 설정 등)
일정한 간격을 띄우는 기준은 '탭 정지 위치' 에 따라서 결정됩니다.
'탭 정지 위치' 역시 환경에 따라서 달라질 수 있습니다.
(관련 키워드 'tab stop' 으로 검색을 해보셔도 도움이 되실 것 같습니다.)
코드에서, "Jack Jack" 은 9 글자이로 8 글자를 초과하고, 나머지 글자들을 모두 8 글자 이하이기 때문에, 질문자님 터미널 환경의 '탭 정지 위치' 에 있어서 8 글자만큼의 차이가 생기는 것으로 보입니다.
\t (탭 문자) 를 통해 문자열의 출력을 고정하는 방법 외에도, printf() 함수의 형식 지정자를 사용하여 다음과 같이 정렬할 수도 있으니, 상황에 따라서 적절한 방법을 선택하시면 좋을 것 같습니다.
pritnf("%-16s\t%d\n", my_friend[i].name, my_friend[i].height);
Export template 안됨
1
19
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
54
3
main 함수에서 왜 int만 선언이 되는걸까요
1
56
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
54
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
49
1
프로토타입과 함수간의 인자 불일치
1
73
2
12.12 헤더 관련 질문
1
60
2
Visual Studio Community 2026 사용 문의
1
137
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
61
2
getchar(), putchar()
1
93
3
강의자리ㅛ
1
80
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
113
2
소스파일안에 여러 파일
1
76
2
F5와 F7의 차이
1
76
2
c = TWO * (a+b); 에서 a와 b는?
1
58
2
; 세미콜론을 붙이는 기준에 문의
1
69
1
Step over 기능 문의
1
53
2
2.6 강의 따옴표 출력 규칙 문의
1
74
2
int main 함수 관련 오류 문의
1
67
2
13.4 words[0]
0
60
2
11.7 함수를 구현해 봤습니다.
1
62
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
65
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
53
2
11.6 fit_str함수를 구현해 봤습니다.
1
53
2





