c语言 - sprintf(newpath, "%s%s" ,...)的sprintf_s类似物是什么?



我正在使用sprintf(newpath, "%s%s", cCurrentPath, "\init.scm");将\init.scm添加到当前目录路径,但有一个常见的警告:

warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

Sprintf_s不支持这样的"%s%s"字符串和。如何使用sprintf_s

sprintf_ssprintf基本相同,但它得到了另一个参数:

sprintf_s(newpath, sizeof(newpath), "%s%s", cCurrentPath, "\init.scm");

注意-如果newpath是一个普通字符数组,则sizeof(newpath)有效。如果是作为参数传递的指针或数组,则可能需要不同的方法来获取大小
您也可以在非MS环境中将snprintf用于相同的目的(尽管它的工作方式不同)。

最新更新