باستخدام ٪ ق شكل محدد مع دفعة:: شكل والأمراض المنقولة جنسيا:: سلسلة

StackOverflow https://stackoverflow.com//questions/10671996

  •  12-12-2019
  •  | 
  •  

سؤال

وأنا أعلم أن استخدام %s محدد التنسيق و std::string مثل هذا يؤدي إلى سلوك غير محدد:

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

ولكن هل هو حفظ لاستخدام نفس محدد و std::string مع boost::format?

#include <boost/format.hpp>

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

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

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

   return 0;
}

%s يحدد أ (كونست) char*, ، لكنني أقدم std::string.يمكن أن يؤدي هذا إلى يو بي أيضا?

هل كانت مفيدة؟

المحلول

أنها آمنة للاستخدام %s مع boost::format و std::string.على النقيض من printf, ، لا يفرض حرف الكتابة في سلسلة التنسيق " الوسائط المعنية لتكون من مجموعة مقيدة من الأنواع ، ولكنها تحدد فقط العلامات المرتبطة بمواصفات النوع هذه."

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top