심사문제 10.8을 보면
서식 지정자가 %s %o %lld %Lf로 되어 있습니다.
나머지는 다 이해를 했는데 %o가 이해가 되질 않습니다.
앞의 설명에서 8진수는 서식 지정자로 숫자 앞에 0을 붙인다고 되어 있고 printf로 출력했을 때 10진수와 구분하기 힘드므로
보통 8진수 서식 지정자는 0%o로 한다고 이해했습니다.
하지만 심사문제에서는 0%o가 아닌 그냥 %o만 되어 있습니다.
그리고 출력결과는 76이 나와야 하는데 그렇다면
076이 아니라 76으로 입력을 해야 하지 않나 의문이 듭니다.
제가 질문이 많은데 귀찮게 해드려 죄송합니다.
0%o로 쓰는 게 더 좋습니다. 76이면 10진수인지 8진수인지 구분하기 어렵습니다. 8진수라면 076으로 표기하는 게 더 좋습니다.
이건 서식 지정자 연습문제로 생각하시면 됩니다.
조금 더 부연하자면 문제에서는 출력에 %o로 명확하게 8진수 출력으로 되어 있고, 출력 결과에도 76이니까 76은 8진수라는 것을 알 수 있습니다.
따라서 인수에 076으로 8진수로 지정하지 않고 76으로 지정하면 출력 결과는 114가 되니까 틀리게 됩니다.
8진수 리터럴 사용법을 아는지 묻는 문제입니다.
-------
입문자는 질문이 많은 게 당연합니다.
다만, C 언어는 이런저런 함정이 많으니 예제의 범위를 벗어나지 않는 게 중요합니다. 하드웨어쪽 진로가 목적이 아니라면 빠르게 학습하고 다음 단계로 나아가세요. 깊이 공부한다거나 마스터한다는 관점은 안 됩니다. 어차피 영어 10년 공부해도 영어 마스터 못한 것처럼 프로그래밍도 비슷합니다. 계속 쓰면서 그때그때 배운다는 자세가 더 중요합니다.
포럼 답변의 대부분은 사이트 관리자가 작성합니다(저자 아님).