小编Squ*_*red的帖子

为什么我需要确保 fprintf_s 中的格式不是用户定义的字符串?

https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/fprintf-s-fprintf-sl-fwprintf-s-fwprintf-sl?view=msvc-170

int fprintf_s(
   FILE *stream,
   const char *format [,
   argument_list ]
);
Run Code Online (Sandbox Code Playgroud)

format 格式控制字符串。

fprintf_s (stdout, "%s", "Hello" );
Run Code Online (Sandbox Code Playgroud)

重要 确保格式不是用户定义的字符串。

这是什么意思?不要这样做:

char user_defined_str [100] = "%s";
fprintf_s (stdout, user_defined_str, "Hello");
Run Code Online (Sandbox Code Playgroud)

?如果“是”——为什么?问题是什么?

我尝试阅读并期待“是”,但不明白为什么应该避免这种情况。

c printf

2
推荐指数
1
解决办法
190
查看次数

标签 统计

c ×1

printf ×1