printf函数(小白篇)

1.基本使用方法

printf()函数的作用是将参数输出到屏幕。其末尾的“f”代表format 即格式化,表示可以输出文本的格式。

printf()函数是在标准库中的头文件stdio.h当中定义的。使用这和函数时,必须在源码文件头部引入这个头文件。

形式如下。

#include<stdio.h>
int main()

{int x= 0;
printf("%d",x);
return 0;}

上面的命令会在屏幕上输出 类型为 int(整型)的变量x的值。

printf() 不会自动在行尾添加\n(换行符),运行结束以后,光标会停留在输出结束的位置,不会自动换行,如图所示。

所以为了让光标移到下一行开头,通常在末尾加入换行符\n。

2.占位符

printf()函数可以在输出文本中指定占位符。

通俗来讲,就是先占住位置,等准备好了再进去

在 <1.基本使用方法>代码中 %d便是占位符的其中一种,表示这个位置要用一个整形来替换

#include<stdio.h>
int main ()
 {int x = 0;
  printf("The number is %d\n ",x); 
   return 0;
  } 

  如上代码当中 函数输出文本为“The number is %d\n”,输出的结果为 The number is 0,整数0替换掉了%d。

除了%d 以外还有许多种类,与c语言当中各种类型对应。

  • %a:代替浮点数,输出十六进制浮点数,字母输出为小写。
  • %A:代替浮点数,输出十六进制浮点数,字母输出为大写。
  • %c:替换字符。char类型
  • %d:十进制整型,代替int类型
  • %e:使用科学计数法的浮点数,指数部分e为小写。
  • %E:使用科学计数法的浮点数,指数部分E为大写。
  • %i:代替整数,基本与%d相同
  • %f:代替浮点型。默认打印小数点后六位。在printf() 中%f与%lf同等,但在scanf() 中double            必须用%lf,float 用%f。
  • %g:代替有效数字为6个的浮点数。整数部分超过六位,自动跳转为科学计数法,指数部分e           为小写。
  • %G:等同与%g,指数部分为大写。
  • %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:指针。
  • %u:无符号整数。
  • %x:十六进制整数。
  • %zd:size_t类型。
  • %%:输出百分号。

3.输出格式

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

  • 限定最小宽度

printf()函数可以限定输出的最小宽度。例如%7d,表示输出的值宽度为7,不满足七个的会用空格填充,默认右对齐。

如果需要左对齐,即在选定输出的内容后面加空格,形如%-7d即可。

  • 限定小数部分的宽度,或者输出部分字符

对于小数的打印一般默认打印小数后六位,初始化小数位数不足时用零补足,但是有时候我们不需要那么多,或者需要更多时,占位符可以写成%.*f的形式,其中*代指需要精确的小数位数。超出部分四舍五入,位数不足则用零补足。

#include<stdio.h>
int main ()
{ double x = 1.23456;
  printf("%f\n",x);
  printf("%.3f\n",x);
  printf("%.8f\n",x);
  return 0 ;
  }

如上代码运算结果如下。%.3f表示精确到第三位小数,所以输出为1.235,%.8f表示精确到第八位小数所以输出1.23456000。

这样的形式同样可以用在字符串中。表示从左开始输出限定长度字符串。对于%s 用来输出字符串时,默认为全部输出,但是有时候不需要那么多时,也可以写成%*s,其中*为一个数字,表示要输出的字符串长度。


#include<stdio.h>
int main ()
{
   printf("%.3s",Love You);//打印Lov
   return 0;
}

​

上述二者一起用

同样,限定最小宽度和限定小数部分可以一起使用。假如我需要输入一个数字并在电脑屏幕上打印它,要求输出的最小宽度为6,并且这个数值要精确到第3位小数。我可以这样写。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	double x = 0;
	scanf("%lf",&x);
	printf("%6.3f\n",x);
	return 0;
}

 另外的,最小宽度和精确位数也可以用*代替,后面可以一一对应变量,根据实际情况做出调整。代码可以写成这样。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	double a = 0;
	int x = 0;
	int y = 0;
	scanf("%lf", &a);
	scanf("%d", &x);
	scanf("%d",&y);
	printf("%*.*f\n",x,y,a);
	return 0;
}

总是显示正负号

在默认情况下,printf()函数打印正数时一般会省略“+”号,而不省略“-”号,当需要打印出符号时,可在%后面添加“+”,代码如下

#include <stdio.h>
int main ()
{  int a = 2;
   int b = -2;
   printf("%+d\n",a);//+2
   printf("%+d\n",b);//-2
   return 0;
}

%+d可以确保每次打印都带上正负号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值