这两者究竟有什么区别?
答案 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/
文档很有用!学会阅读它,你将拥有一个强大的工具。