Sprintf影响格式化中使用的其他字符串?

时间:2012-09-22 22:56:49

标签: c printf

出于某种原因,我的sprintf调用正在影响我用来格式化新字符串的字符串。这是我的代码:

string foo = "bar";
char salt[] = "";
sprintf(salt, "%c%c", foo[0], foo[1]);

当我尝试在foo之后打印sprintf时,它没有任何价值。如果我在sprintf之前打印它,那很好。

1 个答案:

答案 0 :(得分:1)

您的结果缓冲区(salt)太小而无法保存该值。

string foo = "bar";
char salt[3] = "";
sprintf(salt, "%c%c", foo[0], foo[1]);