본문 바로가기
📚 STUDY/🔥 C

Q&A

by 엄지잉 2024. 9. 2.

📌 %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