일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- CS
- 포인터
- c#
- Visual Studio
- VS ERROR
- 김성엽
- Win32
- c++
- Windows
- 리뷰
- 지식나눔강좌
- Tips강좌
- 배열
- 함수
- 이지스퍼블리싱
- 알고리즘
- Tips프로그래밍강좌
- 티스토리
- Programming
- 프로그래밍
- Direct2D
- Desktop
- doit코틀린프로그래밍
- 문법
- 연산자
- Kotlin
- Javascript
- c
- tipssoft
- Yesterday
- Today
- Total
목록printf (2)
F.R.I.D.A.Y.
사용자 지정 서식지정자를 구현해 printf 이진수 출력하기 printf는 C언어의 스탠다드 라이브러리에서 출력을 담당하는 함수로 서식 지정자를 가지고 있다. 서식지정자 printf는 기본적으로 바이너리 출력을 지원하지 않는다. 즉, 이진수 출력을 지원하기 위해서는 따로 함수를 만들어 별도로 작성을 하거나, 직접 printf의 모든 기능을 구현하면서 이진수 출력에 대한 코드를 넣어서 라이브러리를 새로 만들어야한다. 이진수 출력의 문제나, 혹은 직접 커스텀 서식지정자를 만들고 싶을 때도 동일하게 발생하는 문제다. 이진수 출력용 서식지정자 정하기 제공되는 서식지정자에는 이진수 형식으로 출력을 지원하는 서식지정자를 제공하지 않으므로, 새로운 함수를 만들어 기존 printf 함수와 혼용해 코드를 작성하면 그 길..
대학 교수님들이 학생들에게 C를 가르칠 때 종종 double을 출력할 때 %lf가 아니라 %f를 사용하는 교수님들이 계신다. 대학 들어와서 교수님들이 왜 double을 계속 %f로 출력할까 생각을 해봤는데 마땅한 이유가 생각이 나지 않았다. 그래서 '표준 안지키는건 교수님들도 똑같구나'하고 있었는데 근래 들어 그 이유를 찾았다. 이 문제는 C언어 표준과 관련이 있는데 사실, %lf는 C99에서 나온 신기술(?)이다. 기존까지는 double을 출력할 때고 %f를 사용했다고 한다. 기존의 C90의 경우 scanf에 double 자료형을 사용하려면 %lf를, printf로 double 자료형을 출력할 때는 %f를 사용해왔다고 한다. 그러나 개발자들이 scanf에서는 %lf를 사용하고 printf에선 %f를 사..