|
질문을 하시기 전에 도움말(서적에서)을 확인하시는 습관이 개발자의 덕목 중 하나입니다.
cprintf는 화면에 출력하고 뿌려진 문자의 갯수를 리턴합니다.(win32 GUI에선 사용하지 말라고 하네요.)
문자5개(test1)+NULL문자+개행문자 = 7
printf는 문자를 출력하는 것은 cprintf와 같지만, 문자열 상수의 길이만 리턴 합니다.
문자5개(test2)+NULL문자 = 6
sprintf는 메모리에 복사한다고 생각하시면 됩니다.
인자로 정한 문자열을 NULL문자를 제외하고 그대로 복사한다는 겁니다.
문자5개(test3)+"\n" = 6
만약, "\n"이 없으면 5가 맞습니다.
건승을 빕니다.
님이 쓰신 글 :
: 책에 있는 소스를 그대로 따라 하긴 했는뎅... 이해가 안되는 부분이 있어서.. 고수분들 꼭 좀 부탁드려여 ㅠ.. 터보c 소슨뎅.. 여기에 쓸글은 아닌걸 알지만... 부탁드려여.. ㅠ..ㅠ..
: #include <stdio.h>
: void main() {
: char* myBuffer;
: int i = 100;
: i = cprintf("%s\n\r", "test1");
: printf("출력된 문자열수는: %d입니다.\n", i );
: i = printf(" %s\n" , "test2");
: printf("출력된 문자열수는:%d입니다.\n", i);
: i=sprintf(myBuffer,"%s\n","test3");
: printf("출력된 문자열수는: %d입니다.\n\r", i);
: }
:
: 결과: test
: 출력된 문자열수는 : 7입니다.
:
: test2
: 출력된 문자열수는: 6입니다.
: 출력된 문자열수는: 5입니다.
:
: (질문) 여기서.. 결과를 보면.. 7과 6,, 5라는 숫자가 어떻게 해서 나온건지.. 그리구. 마지막 결과는 6이라구 나오던뎅..
: 고수님들.. 부탁드립니당..~ㅠ.ㅠ..
|