Что такое sprintf_s аналог sprintf (newpath, "% s% s", ...)? - PullRequest
8 голосов
/ 18 января 2012

Я использую 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?

1 Ответ

14 голосов
/ 18 января 2012

sprintf_s в основном совпадает с sprintf, но получает другой параметр:

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

Примечание - если newpath является обычным символьным массивом, sizeof(newpath) работает. Если это указатель или массив, переданный в качестве аргумента, вам может понадобиться другой способ получить размер.
Вы также можете использовать snprintf для той же цели в среде без MS (хотя она работает по-другому).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...