字符冲刺f()句柄的限制

limit of char sprintf() handle

本文关键字:句柄 冲刺 字符      更新时间:2023-10-16

我有2个程序。一个要学习,另一个包括解开它..所以喜欢..我有一个计算每秒游戏帧数的函数。

在其中一个:sprintf(FPS, "Immortal Conflicts: FPS: %d,", misc.FPS);另一个没有问题

sprintf(FPS, "Immortal_Conf %d", misc.FPS);是否有原因,当我在第二个函数数据中输入更多字符时......堆叠字符或其他东西,因为数字就像 8 位数字长并且不会改变。

它写得像Immortal_Conflicts:FPS:8454390345

*我注意到,当我从地方改变它时......它吓坏了......哈哈

字符帧[2];

哦,它适用于 FPS[20] =O 我对数组和字符一无所知.. 事实上.. 我学到了一些东西.. 哈哈我发现了我的问题哈哈

存在缓冲区溢出,因为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.