• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

이스케이프 언어 \b 질문입니다.

21.07.18 21:59 작성 조회수 504

0

\b를 사용할때 printf("ABCDF\b\b\b\b\b")이런식으로 입력하면 처음의 A만 삭제가 되는데 printf("ABC\b\bDEF")이런식으로 사용하면 BC가 둘다 사라집니다 왜 이런현상이 발생하는ㄱ ㅓㄴ가요?

답변 1

답변을 작성해보세요.

0

안소님의 프로필

안소

2021.07.20

https://stackoverflow.com/questions/12765297/erasing-using-backspace-control-character

https://www.sololearn.com/Discuss/140826/what-is-the-of-b-backspace-in-c

https://stackoverflow.com/questions/6792812/the-backspace-escape-character-b-unexpected-behavior

저도 잘 모르겠어서 찾아봤는데요! 위 링크들이 이해에 도움이 되실 것 같아요. (특히 맨 아래 링크)

\b 는 문자를 삭제하지 않고 커서를 옮겨줄 뿐이라고 하네요. 커서를 옮긴 후 뒤에 있는 문자가 그 위치를 덮어 씌우는 듯 합니다.

ABCDF\b\b\b\b\b 는 총 5 번 커서를 왼쪽으로 이동하게 되는데요 최종적으로 커서가 A 를 가리키게 됩니다. 그리고 뒤에 잇는 BCDF 를 땡겨와 A 자리를 덮어 씌워서 A 가 지워지는게 아닌가 하는 것으로 추측이 됩니다.

ABC\b\bDEF 는 총 2 번 커서를 왼쪽으로 이동하게 되는데요 최종적으로 커서가 B 를 가리키게 됩니다. 그리고 뒤에 잇는 DEF 를 땡겨와 B 자리를 덮어 씌워서 ADEF 가 되는 것으로 추측이 됩니다.