当前位置:   article > 正文

零基础自学C语言 04|printf的介绍_c语言中的printf语句会换行吗

c语言中的printf语句会换行吗

一,printf的介绍

·printf的基本用法

printf()的作用就是把参数文本输出到屏幕它名字里的f代表的是format(格式化), 表示 可以 定制输出文本的格式。例如:
  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("hello world!");
  5. return 0;
  6. }

这串代码的输出结果就是hello world!。

printf不会自己换行,例如:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("hello world!");
  5. printf("hello world!");
  6. printf("hello world!");
  7. printf("hello world!");
  8. return 0;
  9. }
 

结果就是:

hello world!hello world!hello world!hello world!

如果要换行,可以在文本末尾加上\n:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("hello world!\n");
  5. printf("hello world!\n");
  6. printf("hello world!\n");
  7. printf("hello world!\n");
  8. return 0;
  9. }

结果就是:

hello world!
hello world!
hello world!
hello world!

在文本内部也可以加入\n来达到换行的效果:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. printf("hello\n world!\n");
  5. printf("hello\n world!\n");
  6. printf("hello\n world!\n");
  7. printf("hello\n world!\n");
  8. return 0;
  9. }

结果为:

hello
 world!
hello
 world!
hello
 world!
hello
 world!

printf是在标准库中的头文件<stdio.h>定义的,在使用这个函数之前,必须引入这个头文件,也就是说,必须在使用前加入#include<stdio.h>这个代码。

·占位符

printf可以在输出文本中指定占位符,所谓占位符,就是可以用其他值代入。举个例子:

  1. int main()
  2. {
  3. int a = 0;
  4. printf("%d", a);
  5. return 0;
  6. }

上面的例子中,%d就是占位符,可以用a值代入,而a的值为0,所以结果为0。

占位符的第一个字符一律为%,而上面的%d就是一种用来表示整型的占位符。除了%d可以表示整型,还有%s可以表示字符串:

  1. int main()
  2. {
  3. printf("haha %s", "hehe");
  4. return 0;
  5. }

结果为haha hehe

如果有多个占位符呢:

  1. int main()
  2. {
  3. printf("haha %s %d", "hehe",10);
  4. return 0;
  5. }

那么第一个参数就代替第一个占位符,第二个参数就代替第二个占位符。

除了这些占位符,C语言还提供了许多其他的占位符:

%a:十六进制浮点数,字母输出为小写。

%A:十六进制浮点数,字母输出为大写。

%c:字符。

%d:十进制整数。

%e:用科学计数法计数的浮点数,指数部分的e用小写。

%E:用科学计数法计数的浮点数,指数部分的E用大写。

%i:整数,基本等同于%d。

%f:小数(包含float和double类型)。

%g:六个有效数字的浮点数。整数部分一旦超过六位,就会自动转为科学计数法,指数部分的e为小写。

%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类型浮点数。

%n:已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量中。

%o:八进制整数。

%p:指针。

%s:字符串。

%u:无符号整数(unsigned int)。

%x:十六进制整数。

%zd:size_t类型。

%%:输出一个百分号。

·输出格式

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

(1)限定宽度

  1. int main()
  2. {
  3. printf("%5d",123);
  4. return 0;
  5. }

上面的示例中%5d表示这个占位符的宽度至少是五位,如果输出内容不足五位,那么会在前面补上空格,如果超过五位,则没有影响。默认是向右对齐,也就是在输出内容前面会有空格,所以结果是   123。

如果要向左对齐,也就是要在输出内容右边补上空格,那么就要用%-5d:

  1. int main()
  2. {
  3. printf("%-5da",123);
  4. return 0;
  5. }

结果为123  a。

对于小数也是一样的:

  1. int main()
  2. {
  3. printf("%12f",3.14);
  4. return 0;
  5. }

输出结果为     3.14。

(2)总是显示正负号

默认情况下,printf会省略正号,但是只要在占位符中间加一个+,就会强制显示符号,例如:

  1. int main()
  2. {
  3. printf("%+d", 3);
  4. printf("%+d", -3);
  5. return 0;
  6. }

结果为+3-3。

(3)限定小数位数

输出小数时,有时候希望限定小数的位数,例如,保留两位小数时,可以写成%.2f,就像下面这样:

  1. int main()
  2. {
  3. printf("%.2f\n", 3.1);
  4. printf("%.2f\n", 3.1415);
  5. return 0;
  6. }

结果为

3.10

3.14

这种用法可以和限定宽度结合使用:

  1. int main()
  2. {
  3. printf("%7.3f\n", 3.1);
  4. printf("%7.3f\n", 3.1415);
  5. return 0;
  6. }

结果为

  3.100
  3.142

类似于占位符,这两个限定值都可以用*代替通过printf()的参数带入:

  1. int main()
  2. {
  3. printf("%*.*f\n",7,3, 3.1);
  4. printf("%*.*f\n",7,3, 3.1415);
  5. return 0;
  6. }

结果与上面一串代码相同。

(3)输出部分字符串

%s用于输出部分字符串,但是如果你想要只输出开头部分,可以用%.[m]s来输出指定长度,[m]代表一个数字表示所要输出的长度:

  1. int main()
  2. {
  3. printf("%.5s","hello world!");
  4. return 0;
  5. }

结果只输出前五个字符,也就是hello。


上一篇:操作符的介绍

下一篇:if语句

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/913272
推荐阅读
  

闽ICP备14008679号