📌 %i변환이 정수를 입출력받을 때 사용되던 걸 봤는데, %d랑 뭐가 다르죠?
- printf의 서식문자열에서는 큰 차이가 없는데, scanf에서는 차이가 있음.
- %d는 오로지 10진수 정수만 입력받을 수 있고, %i는 10진수, 8진수, 16진수 모두 인식 가능.
(입력값이 0으로 시작하면 8진수 취급, 0x or 0X로 시작하면 16진수로 취급)
📌 printf가 %을 변환규격의 시작으로 인식한다면, %는 어떻게 출력하죠?
- % 두 개를 연이어서 쓰면 됨. (%%)
📌 \t 확장비트열을 printf에서 사용되면 다음 탭으로 넘어가게 되는데요, 탭 하나에 빈 칸이 몇 개인가요?
- 알 수 없음. OS에 따라 결정됨. 주로 8칸인데, 전부 그런 건 아님.
📌 scanf이 숫자를 읽어야할 때 숫자가 아닌 값을 입력해주면 어떻게 되나요?
- 만약 호출이 실패하면 프로그램으로 하여금 종료하거나 유저보고 다시 입력해달라고 해서 다시 제대로 시도하게 만들 수 있음. 22단원 Q&A에서 자세히 다룰 예정.
📌 scanf 함수가 문자를 뒤로 "미루고" 나중에 다시 읽힌다는게 무슨 말인지 모르겠어요.
- 입력값은 우선 scanf가 사용할 수 있는 숨겨진 버퍼에 저장됨. scanf는 다음에 계속해서 읽기 과정을 진행하기 위해 문자를 다시 이 버퍼에 미루는게 가능함. 이 입력버퍼에 대해서는 22단원에서 구체적으로 다룸.
💡 본 내용은 K.N.King의 C Programming: A Modern Approach 책을 참고하였습니다.
'📚 STUDY > 🔥 C' 카테고리의 다른 글
[4-2] 할당연산자 (0) | 2024.09.03 |
---|---|
[4-1] 산술연산자 (1) | 2024.09.03 |
[3-2] scanf 함수 (0) | 2024.09.02 |
[3-1] printf 함수 (4) | 2024.09.02 |
Q&A (GCC, GNU, 함수, 주석, 식별자, 레이아웃..) (4) | 2024.09.02 |