我知道你可以用printf()和puts()进行打印。我还可以看到printf()允许您插入变量并进行格式化。
是puts()仅仅是printf()的原始版本。它是否应该用于所有可能的printf()而不进行字符串插值?
我知道你可以用printf()和puts()进行打印。我还可以看到printf()允许您插入变量并进行格式化。
是puts()仅仅是printf()的原始版本。它是否应该用于所有可能的printf()而不进行字符串插值?
当前回答
printf可以被认为是一个更强大的版本。Printf提供了使用格式说明符(如%s, %d, %lf等)格式化输出变量的能力。
其他回答
根据我的经验,无论格式字符串如何,printf()都会比puts()引入更多的代码。
如果我不需要格式化,我就不用printf。但是,fwrite到stdout的速度要比put快得多。
static const char my_text[] = "Using fwrite.\n";
fwrite(my_text, 1, sizeof(my_text) - sizeof('\0'), stdout);
注意:每个注释中,'\0'是一个整数常量。正确的表达式应该是sizeof(char),如注释所示。
当比较puts()和printf()时,尽管它们的内存消耗几乎相同,但puts()比printf()花费更多的时间。
Puts是一个简单的选择,它在最后添加一个新行,并从格式化的字符串中printfwrite输出。
关于看跌期权,请参阅文档 对于printf。
我建议只使用printf,因为这比切换方法更一致,也就是说,如果你正在调试,搜索所有printf比搜索puts和printf要少一些痛苦。大多数情况下,您也希望在打印输出中输出变量,因此puts主要用于示例代码中。
printf可以被认为是一个更强大的版本。Printf提供了使用格式说明符(如%s, %d, %lf等)格式化输出变量的能力。
int puts(const char *s);
Puts()将字符串s和后面的换行符写入stdout。
int printf(const char *format, ...);
函数printf()在格式字符串的控制下将输出写入stdout,该格式字符串指定如何将后续参数转换为输出。
我将利用这个机会请您阅读文档。