문제

내가 알고 있는 것을 사용하여 %s 형식을 지정자 std::string 다음과 같이 리드를 정의되지 않은 행동:

std::string myString = "test";
printf("%s", myString);

그러나 그것은 저장 사용자와 std::stringboost::format?

#include <boost/format.hpp>

int main() 
{
   std::string myString = "test";

   boost::format fmt("%s");
   fmt % myString;

   std::cout << fmt.str();

   return 0;
}

%s 지정(const) char*, 지만,저는 제공 std::string.수이도 예약하나요?

도움이 되었습니까?

해결책

사용하는 것이 안전합니다 %sboost::formatstd::string.달 printf, 형식 문자에서 형식 문자열"을 부과하지 않는 관련된 인수하의 제한된 유형,그러나 단지 세트 플래그와 관련된 이 유형의 사양입니다."

http://www.boost.org/doc/libs/1_49_0/libs/format/doc/format.html#printf_directives

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top