android - Skrive cout-formateret data til printf

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er ved at logge på en platform-applikation, og jeg forsøger at forstå, hvordan jeg skal gøre, når det gælder for eksempel Android, hvor standardloggningssystemet i C ++ bruger en printf-formateret funktion. Men jeg vil bruge '< <' operatøren til at logge let, for eksempel


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


Nu hvordan ville man gå om at konvertere dette til et printf-venligt format? Er der en nem måde at gøre dette på?


REDIGER : mLogger er en output-stream. Jeg skal overbelaste '< <' operatør og forsøg på en eller anden måde at opbygge en korrekt formateret streng fra dens input til brug for printf. Er det klarere?

Bedste reference


Du kan bruge en strengstrøm til at formatere beskeden:


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

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


At passere strengen til printf er så ret simpel:


printf("\%s", msg.str().c\_str());

Andre referencer 1


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