我知道你可以用printf()和puts()进行打印。我还可以看到printf()允许您插入变量并进行格式化。
是puts()仅仅是printf()的原始版本。它是否应该用于所有可能的printf()而不进行字符串插值?
我知道你可以用printf()和puts()进行打印。我还可以看到printf()允许您插入变量并进行格式化。
是puts()仅仅是printf()的原始版本。它是否应该用于所有可能的printf()而不进行字符串插值?
当前回答
根据我的经验,无论格式字符串如何,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返回一个非负整数,如果不成功,则返回EOF;而printf返回打印的字符数(不包括后面的null)。
printf可以被认为是一个更强大的版本。Printf提供了使用格式说明符(如%s, %d, %lf等)格式化输出变量的能力。
Puts比printf简单,但注意前者会自动添加换行符。如果这不是你想要的,你可以fputs你的字符串到stdout或使用printf。
printf()函数用于将字符串和变量打印到屏幕上,而puts()函数只允许将字符串打印到屏幕上。
根据我的经验,无论格式字符串如何,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),如注释所示。