printf()的详细用法

236 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情

printf()和scanf()函数能让用户可以和程序有更好的交流,它们是输入和输出函数,简称I/O函数。虽然scanf()是输入函数,printf()是输出函数,但实际工作原理差不多。

printf()

请求printf()函数打印数据的指令要与待打印数据的类型相匹配。例如,打印整数使用%d,打印字符使用%c。这些符号称为转换说明,它们指定了如何把数据转化成可显示的形式。下面这个表格介绍了一些转换说明和各自对应的输出类型。

转换说明输出
%a浮点数,十六进制数
%c单个字符
%d有符号的十进制整数
%e浮点数
%f浮点数,十进制记数法
%i有符号十进制整数
%o无符号八进制整数
%p指针
%s字符串
%u无符号十进制整数
%x无符号十六进制整数
%%打印一个百分号

举个简单例子使用printf()

#include <stdio.h>
#define PI 3.141593
int main(){
    int number = 7;
    float pies = 12.75;
    int cost = 7800;
    printf("The %d contestants ate %f berry pies.\n",number,pies);
    printf("The value of pi is %f.\n",PI);
    printf("Farewell! thou art too dear for my possessing,\n");
    printf("%c%d\n",'$',2*cost);
    return 0;
}

运行结果

Snipaste_2022-08-06_18-01-23.png

格式

printf(格式字符串,待打印项1,待打印项2,……);

  • 格式字符串应包含每个待打印项对应的转换说明。例如例子中:

printf("The %d contestants ate %f berry pies.\n",number,pies); 且格式字符串是双引号括起来的内容。这个语句的格式字符串包含两个待打印值:number,pies 对应两个转换说明。

printf("The value of pi is %f.\n",PI);

这个例中,只有一个项需要打印。所以,打印项数量任意。

  • 待打印项1,待打印项2等都是要打印项。它们可以是变量,常量,甚至是在打印之前先要计算的表达式。

注意事项

  1. 格式字符串中的转换说明需要和后面的项匹配
  2. 如果只打印短语或句子,就不需要使用任何转换。如果只打印数据,也不用加入说明文字。
  3. printf()使用的是值,变量或者表达示的值
  4. 想要打印%,可以写两个%来表示。例如:
pc=2*5;
printf("Only %d%% of Sally's qribbles were edible.\n",pc);