이상한 printf 루틴에 대한 도움 요청
글쓴이: air74 / 작성시간: 목, 2005/06/23 - 10:22오전
안녕하세요.
코드 분석 중에 보니 다음과 같은 printf 문이 있더라구요.
몇가지 궁금 한게 있어 이리 글을 씁니다.
void test_console_print(const char* str, int len) { ASSERT(str && len > 0); printf("%.*s\r\n", len, str); }
여기서 질문 드립니다.
1. 위의 printf 내용중 %.*s 는 어떻게 해석 해야 하나요?
2. \r 과 \n 의 차이가 궁금 합니다.
3. 위에 보면 argument 는 두개인데 print 문에 보면 % 가 하나 밖에 없는데 잘못 된 건가요?
답변 부탁 드립니다. 그리고 좋은 하루 되세요.
Forums:
% 구문에 * 가 들어가면 자릿수를 입력 받는 겁니다.그러니까
% 구문에 * 가 들어가면 자릿수를 입력 받는 겁니다.
그러니까
에서 len은 자릿수가 되고 그 다음 그 자릿수만큼 문자열이 출력 됩니다.
\r 은 커서를 줄의 처음으로 \n 은 다음 줄로, 이 둘이 합쳐서
다음 라인의 처음으로 갑니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
참고로 \r\n은 도스나 윈도우 계열에서 사용하는 줄바꿈입니다.유닉스
참고로 \r\n은 도스나 윈도우 계열에서 사용하는 줄바꿈입니다.
유닉스계열에서는 \n 하나만을 사용하죠.
[quote="eungkyu"]참고로 \r\n은 도스나 윈도우 계열에서
유닉스에서도 터미널이 raw mode일 때는 \r\n을 써야합니다. (자세한 건 man stty 참조)
댓글 달기