什么时候应该使用 fputs 而不是 fprintf? [已关闭]

问题描述 投票:0回答:3

两者到底有什么区别?

c printf fputs
3个回答
46
投票

fprintf 进行格式化输出。也就是说,它读取并解释一个 您提供的格式字符串并将其写入输出流 结果。

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

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


15
投票

正如其他评论者所指出的(从文档中可以明显看出),最大的区别是

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);  

6
投票

嗯... ...

puts()
只是写入一个字符串,而
printf()
有许多针对多种数据类型的格式化工具。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.