일단 결과로 적어놓으신 것이 저와는 다른것같습니다.
저는 7, 7, 6로 나오네요.
cprintf와 printf는 new line과 line feed 기능이 문자열과 같이 카운트되는것 같습니다.
그럴경우 7이 리턴되게됩니다.
sprintf의 경우는 스트링 길이만 처리되어서 6가 된것 같습니다.(\n도 포함되는..)
(어제 시간을 좀 내었어야 하는데;; 일단 짬시간에 하나씩 적다보니 ~같습니다 류의 답글이 되고있습니다. ^^; )
new line의 경우 커서를 새로운 라인 즉, 한줄 아래로 내립니다. 여기서 커서의 위치는 진행된 위치에서 내려가므로
line feed 기능으로 커서를 새로운 라인의 처음으로 옮겨야 합니다.
그 2가지 특수기능이 카운트된것입니다.
자세한 내용은 아래에서 직접 해당 함수를 찾아보세요. ^^
http://www.winapi.co.kr/cpp/reference/reference.htm
#include <conio.h>
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
char myBuffer[100];
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);
getch();
return 0;
}
박.. 님이 쓰신 글 :
: 책에 있는 소스를 그대로 따라 하긴 했는뎅... 이해가 안되는 부분이 있어서.. 고수분들 꼭 좀 부탁드려여 ㅠ..
: #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이라구 나오던뎅..
: 고수님들.. 부탁드립니당..~ㅠ.ㅠ..