我何时应该使用fput而不是fprintf?

时间:2011-04-17 02:04:29

标签: c

这两者究竟有什么区别?

3 个答案:

答案 0 :(得分:31)

fprintf格式化输出。也就是说,它读取和解释a 格式字符串,您提供和写入输出流 结果。

fputs只是将您提供的字符串写入指示的输出 流。

fputs()不必解析输入字符串,以确定您要做的就是打印字符串。fprintf()允许您在输出时进行格式化。

答案 1 :(得分:12)

正如其他评论者所指出的那样(并且从文档中可以明显看出),最大的区别在于printf允许格式化参数。

也许您在询问函数是否等效,而没有其他参数传递给printf()?好吧,他们不是。

   char * str;
   FILE * stream;
   ...
   fputs(str,stream);    // this is NOT the same as the following line
   fprintf(stream,str);  // this is probably wrong

第二个可能是错误的,因为fprintf()的字符串参数仍然是一个格式化字符串:如果它有'%'字符,它将被解释为格式化说明符。

功能相当(但不那么直接/有效/不错)的形式将是

   fprintf(stream,"%s", str);  

答案 2 :(得分:5)

...嗯 ... puts()只是写一个字符串,而printf()有几种类型数据的格式设置。

fputs() http://www.cplusplus.com/reference/clibrary/cstdio/fputs/

fprintf() http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/

文档很有用!学会阅读它,你将拥有一个强大的工具。