C stdio函数(sprintf、vsprintf和fprintf)背后的命名约定是什么?
一篇文章解释了我们许多人多年来所知道的差异。我的假设是:C stdio函数(sprintf、vsprintf和fprintf)背后的命名约定是什么?,c,naming-conventions,stdout,C,Naming Conventions,Stdout,一篇文章解释了我们许多人多年来所知道的差异。我的假设是: sprintf 第一个字符“s”表示字符串类型的第一个参数 最后一个字符“f”表示格式 fprintf 第一个字符“f”表示字符串类型的第一个参数 最后一个字符“f”表示格式 printf 以“”开头,没有第一个参数 最后一个字符“f”表示格式 我认为第一个字母代表第一个参数,但是vsprintf和printf否认了这一说法。最后一个字母似乎表示它采用了某种格式。更不用说U's、N's、C's、V's和F's的所有其他用途
sprintf
- 第一个字符“s”表示字符串类型的第一个参数
- 最后一个字符“f”表示格式
fprintf
- 第一个字符“f”表示字符串类型的第一个参数
- 最后一个字符“f”表示格式
printf
- 以“”开头,没有第一个参数
- 最后一个字符“f”表示格式
vsprintf
和printf
否认了这一说法。最后一个字母似乎表示它采用了某种格式。更不用说U's、N's、C's、V's和F's的所有其他用途了
如果有人能给stdio
中所有这些约定背后的理性人解释和来源,那将是令人惊讶的
奖金-
获得对姓名删除的额外尊重。前缀:
N
-提供了一个安全网,用于限制可安全写入/读取的字符数V
-您正在使用变量参数列表。如果您想编写模拟printf的函数,这非常有用S
-您正在读取/写入字符串F
-您正在读取/写入文件p
-您正在读取进程的输出None
-printf和scanf没有前缀,因为它们只是从标准输入/输出读取/写入-在UNIX世界中,它们不过是文件F
-您正在按照格式化输出进行读写(您说您将使用格式字符串,后跟变量参数)C
-一次处理一个字符S
-您处理的是字符串(在到达下一个空格字符之前,数量几乎总是如此)W
-您正在处理单词(不要将其与英语单词混淆,单词仅表示大小(int))前缀:
N
-提供了一个安全网,用于限制可安全写入/读取的字符数V
-您正在使用变量参数列表。如果您想编写模拟printf的函数,这非常有用S
-您正在读取/写入字符串F
-您正在读取/写入文件p
-您正在读取进程的输出None
-printf和scanf没有前缀,因为它们只是从标准输入/输出读取/写入-在UNIX世界中,它们不过是文件F
-您正在按照格式化输出进行读写(您说您将使用格式字符串,后跟变量参数)C
-一次处理一个字符S
-您处理的是字符串(在到达下一个空格字符之前,数量几乎总是如此)W
-您正在处理单词(不要将其与英语单词混淆,单词仅表示大小(int))你需要看的不是第一个字符,而是前缀 “原始”功能,
printf
用于格式化打印。然后可以将一个或多个前缀添加到printf
名称:
:打印到f
文件
:打印到字符串s
:使用v
va_列表打印
:打印给定数量的字符n
:打印宽字符:w
:格式化打印到标准输出printf
:格式化打印到fprintf
文件
:格式化打印为字符串sprintf
:格式化打印为具有给定字符数的字符串snprintf
:使用vprintf
va_列表格式化打印到标准输出
:使用vfprintf
格式化打印到va_列表
文件
:使用vsprintf
va_列表对字符串进行格式化打印
:使用vsnprintf
格式化打印到具有给定字符数的字符串va_list
:将宽字符格式化打印到标准输出wprintf
:将宽字符格式化打印到fwprintf
文件
:将宽字符格式化打印为字符串swprintf
:使用vwprintf
va_列表将宽字符格式化打印到标准输出
:使用vfwprintf
va_列表将宽字符格式化打印到
文件
:使用vswprintf
va_列表将宽字符格式化打印为字符串
printf
用于格式化打印。然后可以将一个或多个前缀添加到printf
名称:
:打印到f
文件
:打印到字符串s
:使用v
va_列表打印
:打印给定数量的字符n