컴퓨터활용/리눅스
U2L프로젝트 printf 이슈
멜번초이
2020. 5. 19. 17:38
포매팅으로 패딩하여 출력하거나 문자열을 구성할 때 동작의 차이가 있다.
printf("[%06s]\n", "AB"); 라고 했을 때 유닉스에서는 0 이 좌패딩되었다. 그런데 리눅스에서는 스페이스가 좌패딩된다. printf() 는 출력하는 거라 로직에 영향을 미치지 않을 수 있다고 치더라도 포매팅을 사용하는 sprintf 도 동일한 현상이 발생된다.
이런 로직의 경우는 프로그램 속에 숨어 있어서 찾아내기 어렵기 때문에 꼼꼼한 테스트가 필수이다. printf 함수의 포매팅으로는 커버할 수 없기 때문에 별도의 함수를 만들어야 하기 때문에 상당히 번거롭게 된다.