C printf中f的含义是什么?
在C的printf中,“f”是什么意思 printf中的C printf中f的含义是什么?,c,C,在C的printf中,“f”是什么意思 printf中的f代表格式化,用于打印格式化输出。printf允许格式化,而打印不允许格式化。另外,C语言中不存在print。我甚至不知道printg是什么。如果我没有弄错的话,printf代表“将格式化数据打印到标准输出” 如其他人所述,尾随的f表示格式化输出(或scanf系列中函数的格式化输入) 但是,我要补充一点,区别很重要,因为调用方必须知道字符串应该具有格式说明符语义。例如,不要这样做: char* s = get_some_user_input
f
代表格式化,用于打印格式化输出。printf允许格式化,而打印不允许格式化。另外,C语言中不存在print。我甚至不知道printg是什么。如果我没有弄错的话,printf代表“将格式化数据打印到标准输出” 如其他人所述,尾随的f
表示格式化输出(或scanf
系列中函数的格式化输入)
但是,我要补充一点,区别很重要,因为调用方必须知道字符串应该具有格式说明符语义。例如,不要这样做:
char* s = get_some_user_input();
printf(s); // WRONG. Instead use: printf("%s", s) or fputs(stdout, s)
如果
s
恰好包含%
字符,直接使用printf
打印它可能会导致它访问不存在的参数,从而导致未定义的行为(这是某些安全漏洞的原因)。如果您曾经定义自己的printf
-类似于可变函数,请记住此命名约定。谢谢。。。所以,如果我只写print,它会工作吗…@Sharan Chandran:C标准库中没有print
函数。@SharanChandran非格式化的版本叫做put
。我刚开始学习C编程。。。如果这个问题很傻,我道歉……这个问题有什么含糊不清的地方?这怎么不合理呢?当然有合理的答案。(同样有趣的是,尽管有公认的答案,K-ballo还是其中一个结束了这个问题的人。)这是一个真实的问题,但可以很快用谷歌搜索(和许多其他问题一样):因此它是重复的,所以我投票结束,但原因不同。谷歌能力不应该是结束一个问题的基础。谷歌索引溢出;因此,SO上的所有问题和答案都可以在谷歌上进行隐式搜索。只要你不使用fprintf
进行其他指定,“打印格式”-stdout
就是理所当然的。我也不知道print
是什么……是的,我只记得它也不存在:)我很久没有用c语言编写代码了