printf函数详解——日常使用注意

目录

1.什么是库函数:

2.printf()函数介绍:

  2.1占位符

    2.1.1 占位符概念:

    2.1.2 占位符列举:

  2.2输出格式

     2.2.1 限制宽度 和 左右对齐:

     2.2.2 总是显示正负数:

     2.2.3 限制小数的位数:

     2.2.4只输出部分字符串:

3.总结|补充:


1.什么是库函数:

   为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了⼀个函数库,被称为  标准库 ,这些函数也被称为 库函数 。在这个基础上⼀些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不⼀定支持)。
   ⼀个系列的库函数⼀般会声明在同⼀个头文件中,所以库函数的使用,要包含对应的头文件。

2.printf()函数介绍:

        printf函数是一个库函数,功能是在标准输出设备(一般指屏幕)上进行信息打印。printf的函数名其实是由两部分组成,即 printformat(格式化)。f就是format,表示可以定制输出文本的格式,就是所谓的按格式输出。

  2.1占位符

    2.1.1 占位符概念:

         printf函数可以输出文本中指定 占位符。所谓“占位符”,就是这个位置可以用其他值代替。

         

#include 
int main()
{
 printf("There are %d apples\n", 3);//输出 There are 3 apples
 return 0;
}

        这里的 " %d " 就是占位符,表示这个位置要用其他值来代替。  占位符第一个字符一定是 %,第二字字符表示占位符类型,%d这里表示这个位置必须用一个整数代替。

        printf函数第二个参数就是替换占位符的值,上面这个例子就是 3 代替 %d。执行的结果就是 “There are 3 apples”

    2.1.2 占位符列举:

%a :⼗六进制浮点数,字⺟输出为小写。
%A :⼗六进制浮点数,字⺟输出为大写。
%c :字符。
%d :⼗进制整数。
%e :使用科学计数法的浮点数,指数部分的 e 为小写。
%E :使用科学计数法的浮点数,指数部分的 E 为大写。
%i :整数,基本等同于 %d
%f :小数(包含 float 类型和 double 类型)。
%g :6个有效数字的浮点数。整数部分⼀旦超过6位,就会⾃动转为科学计数法,指数部分的 e
为⼩写。
%G :等同于 %g ,唯⼀的区别是指数部分的 E 为⼤写。
%hd :十进制 short int 类型。
%ho :八进制 short int 类型。
%hx :十六进制 short int 类型。
%hu :unsigned short int 类型。
%ld :十进制 long int 类型。
%lo :八进制 long int 类型。
%lx :十六进制 long int 类型。
%lu :unsigned long int 类型。
%lld :十进制 long long int 类型。
%llo :八进制 long long int 类型。
%llx :十六进制 long long int 类型。
%llu :unsigned long long int 类型。
%Le :科学计数法表⽰的 long double 类型浮点数。
%Lf :long double 类型浮点数。
比特就业课主页:https://m.cctalk.com/inst/s9yewhfr
比特就业课-专注IT大学生就业的精品课程
%n :已输出的字符串数量。
该占位符本⾝不输出,只将值存储在指定变量之中。
%o :八进制整数。
%p :指针。
%s :字符串。
%u :无符号整数(unsigned int)。
%x :十六进制整数。
%zd size_t 类型。
%% :输出⼀个百分号。

  2.2输出格式

      printf函数可以定制占位符的输出格式。

     2.2.1 限制宽度 和 左右对齐:

        printf函数可以限定占位符的最小宽度

#include 
int main()
{
     printf("%5d\n", 123); // 输出为 "  123"
     printf("%5d\n", 123456); // 输出为 "123456"
     return 0;
}

      上面这个例子中 “%5d”表示这个占位符至少要占5位宽度。若未满5位,则打印空格,若满足5位,则不做限制原样打印

       printf函数默认是右对齐,若想要左对齐,应在占位符表示类型前加上“-”。

#include 
int main()
{
     printf("%5d\n", 123); // 输出为 "  123"
     printf("%-5d\n", 123); // 输出为 "123  "
     return 0;
}

     2.2.2 总是显示正负数:

        printf函数默认情况下,只显示负数的“-”,正数不显示“+”。那么我们可以在占位符的标识类型前加上“+”,这样我们就可以总是显示正负数了。

#include 
int main()
{
    printf("%+d",7);//输出+7
    printf("%+d",-7);//输出-7
    return 0;
}

     2.2.3 限制小数的位数:

#include 
int main()
{
 printf("Number is %.2f\n", 0.5);//输出0.50
 return 0;
}

        上面例子中,".2f"就表示保留小数点后2位。printf函数默认情况下保留小数点后6位。此外,这种写法还可以和限制宽度结合。

#include 
int main()
{
     printf("%6.2f\n", 0.5);//输出"  0.50"
     return 0;
}

        上面例子中 "%6.2f"就表示占位符占6位,其中保留小数点后两位。所以0.50前有两个空格。

        最小宽度和小数位数这两个限定值,都可以通过 " * "来代替,通过printf函数的参数传入。

#include 
int main()
{
     printf("%*.*f\n", 6, 2, 0.5);
// 等同于printf("%6.2f\n", 0.5);
     return 0;
}    

     2.2.4只输出部分字符串:

        %s占位符用来输出字符串,默认是全部输出。若只想要输出前几位,则需要使用 "%[m]s"指定输出的长度,这里的m是个数字,表示所要输出长度。

#include 
int main()
{
     printf("%.5s\n", "hello world");//输出hello
     return 0;
}

上面例子中," %.5s "表示输出字符串 "hello world"的前5位,即 "hello"

3.总结|补充:

——printf()的作用是将参数文本输出到屏幕。它名字里面的f代表format(格式化),表示可以定制输出文本的格式。

——printf()不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行。

——printf()可以在输出文本中指定占位符,“占位符”,就是这个位置可以用其他值代入。

——printf()参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n+1个

你可能感兴趣的:(C语言语法详解,c++,开发语言,c语言,算法)