14

C的printf中的“f”是什么意思?

4

4 回答 4

24

finprintf代表formatted,它用于带格式化输出的打印。

于 2012-05-25T21:43:27.253 回答
3

正如其他人所指出的,尾随 f表示格式化输出(或系列中函数的格式化输入scanf)。

但是,我要补充一点,区别很重要,因为调用者知道字符串应该具有格式说明符语义很重要。例如,不要这样做:

char* s = get_some_user_input();
printf(s); // WRONG.  Instead use: printf("%s", s) or fputs(stdout, s)

如果s碰巧包含%字符,直接打印它printf会导致它访问不存在的参数,从而导致未定义的行为(这是一些安全漏洞的原因)。printf如果您曾经定义自己的 -like 可变参数函数,请记住此命名约定。

于 2012-05-25T23:59:08.033 回答
0

printf 允许格式化,而 print 不允许。此外,C 中不存在 print。我什至不知道 printg 是什么。

于 2012-05-25T21:43:35.287 回答
0

如果我没记错的话,printf 代表“将格式化数据打印到标准输出”。

于 2012-05-25T21:44:28.690 回答