我有2个程序..一个要学习,另一个包括解析..所以..我有一个计算每秒游戏帧数的功能。
其中一个:sprintf(FPS, "Immortal Conflicts: FPS: %d,", misc.FPS);
没有问题另一个
sprintf(FPS, "Immortal_Conf %d", misc.FPS);
可能有一个原因,为什么由于某种原因,当我在第二个函数数据中输入更多字符时...堆叠字符或其他东西,因为数字长度为8位并且不会改变。
它写得像Immortal_Conflicts:FPS:8454390345
*我已经注意到,当我从地方改变它时......它吓坏了......哈哈
char FPS [2];
哦,它与FPS一起工作[20] =哦我对数组和字符一无所知..事实上......我学到了一些东西..大声笑我发现了我的问题lol
答案 0 :(得分:3)
缓冲区溢出,因为FPS
只能容纳两个字符。它需要足够大以容纳结果字符串。
因为这是C ++建议使用std::ostringstream
来构造你的字符串:
#include <sstream>
std::ostringstream FPS;
FPS << "Immortal Conflicts: FPS: " << misc.FPS; // FPS.str() will return a
// std::string of the data.