两者到底有什么区别?
正如其他评论者所指出的(从文档中可以明显看出),最大的区别是
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);
嗯... ...
puts()
只是写入一个字符串,而 printf()
有许多针对多种数据类型的格式化工具。
fputs()
http://www.cplusplus.com/reference/clibrary/cstdio/fputs/
fprintf()
http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/
文档很有用!学会阅读它,你就会拥有一个强大的工具。