建议使用以下哪项?
printf("DON>");
Run Code Online (Sandbox Code Playgroud)
要么
const char prompt[] = "DON>";
printf("%s", prompt);
Run Code Online (Sandbox Code Playgroud)
有什么不同?
区别在于printf("DON>")扫描输入的%字符并将其解释为格式.例如,如果要输出DON%提示,则必须将其拼写为printf("DON%%").当printf用于显示短字符串文字时,这不是问题- 这种调用甚至在C编程语言hello world开头的标志性示例中进行.
如果要将字符串定义与打印分开,如第二个示例所示,则%s格式化是文本打印的首选.这既是为了避免引用的需要%,也是为了使代码更易于维护,方法是让人类读者明白字符串是按字面打印的.您也可以使用fputs(prompt, stdout),但不能puts(prompt),因为后者也会发出不需要的换行符.