2012-02-21 4 views
0

크로스 플랫폼 응용 프로그램에 대한 로깅을 수행하고 있으며 C++의 기본 로깅 시스템에서 사용하는 Android와 같이 어떻게해야하는지 이해하려고합니다. printf-formated 기능. 그러나 나는 어떻게 하나가 printf와 친화적 인 형식이 변환 가겠어요 이제 printf에 cout 형식의 데이터 작성

std::string myName = Johan; 
int myID = 1; 
mLogger << "Hello my name is: " << myName << " and my ID is: " << myID; 

예를

를 들어, 쉽게 로그인 할 '< <'연산자를 사용하려면? 이 작업을 수행하는 쉬운 방법이 있습니까?

EDIT : mLogger는 출력 스트림입니다. '< <'연산자를 오버로드하고 printf에 사용할 입력에서 올바르게 형식화 된 문자열을 구축하려고합니다. 그게 더 명확 해? 다음

std::ostringstream msg; 
std::string myName = "Johan"; 
int myID = 1; 

msg << "Hello my name is " << myName << " and my ID is: " << myId; 

printf에 문자열을 전달 오히려 간단하다 :

+0

'mLogger'을 무엇입니까? 문자열 스트림? – jrok

답변

2

당신은 메시지의 형식을 문자열 스트림을 사용할 수 있습니다

printf("%s", msg.str().c_str()); 
1

printf("Hello my name is: %s and my ID is: %d", myName.c_str(), myId);

+0

형식을 알기 때문에 '<<'의 입력을 기반으로 구축하는 방법은 무엇입니까? – KaiserJohaan

+0

이것이 목표라면 @jrok의 대답을 고려하십시오. – jglouie