짜잔~~
란씨맨님 보세여
익명(110.70)
2017-07-15 17:21
추천 0
댓글 25
다른 게시글
-
한국서 로우레벨 개발은;; [1]익명(27.100) | 17.07.15추천 0
-
헤더순서 꼬이면 터지는구나익명(175.214) | 17.07.15추천 0
-
아치에 budgie 올렸다. [3]익명(114.111) | 17.07.15추천 0
-
이쯤되면 vim은 에디터가 아니라 텍스트 편집 기법 같음 [1]닉네임왜궁..(cmdnikle27) | 17.07.15추천 0
-
비주얼 스튜디오나 안드로이드 스튜디오는 그냥 입력만 하면 [5]ㅁㄴㅇㄹ(183.106) | 17.07.15추천 0
-
맥쓰면 졸라 신경 쓰여서 짜증나는 점 하나. [7]dd(59.42) | 17.07.15추천 0
-
c먼저 배운다음에 c++배우고 [6]익명(220.80) | 17.07.15추천 0
-
알고리즘 책 추천해주세요 [1]익명(49.1) | 17.07.15추천 0
-
혹시 회사에서 베이퍼웨어스러운거 개발해본적 있냐? [1]익명(178.62) | 17.07.15추천 0
-
일본에서 it가 그렇게 기피직종임? [1]익명(110.70) | 17.07.15추천 1
앞에는 스페이스가 계속남고, 뒤에는 뉴라인이 계속 남는다는 소리져?
음... 스페이스가 계속 남는다는게 먼말인지 모르겠네여
위에서 제가 "섹스섹스"라고 친 다음에 엔터를 눌렀잖아여?
그럼 실제로 제가 입력한 건
'섹' '스' '섹' '스' '\n'
이 5개의 문자에요
근데 %s로 문자열을 받으면
'\n' (개행문자)가 입력되는 순간
%c 앞에 한칸을 띄라면서여... 스페이스 씹을라고 그러는거 아닌가여?
그 직전까지 문자들을 문자열로 담는거에요
아 그건 스페이스를 씹는게아니라
버퍼에 있는걸 비우는 용도에요
사실 저도 그게 왜 그렇게 되는지 정확한 원리는 잘 몰라요.
그냥 scanf(" %c", &ch); 라고 쓰면 버퍼에 있는걸 먼저 비운다는 정도만 알아여
%c 앞에 한칸 띠면, 스페이스바를 씹는거 같은데여 제생각에는요,
저거때문에 가끔가다가 무한루프 걸리거덩요,
스페이스바라는개 공백문자를 의미하시는거라면 아니에여
애초에 개행문자는 공백문자와 다른걸요?
32번이여 스페이스
10번이 뉴라인이구
그니까 스페이스도 씹고 뉴라인도 씹고
버퍼에 뭐가 들어가있든 다 씹어여
스페이스만 씹는게아니라
char str[10], ch; scanf("%s", str); scanf(" %c", &ch); printf("%c", ch);
여기선 버퍼에 남아있는게 스페이스가 아니라 뉴라인인데도 씹고 새로 문자 하나 받아여