在C语言中,我们经常会看到 printf 输出函数 和 scanf 输入函数里面都会有一个%d,这里的%d相当于一个占位符,表示的是输入或输出十进制有符号数,%d 通常和int整数类型的变量搭配使用。常见的占位符还有很多,例如:%c、%d、%ld、%lld、%f、%lf、%u、%hu、%lu等等。下面我来详细谈谈这些占位符吧!
%c —— 字符输入/输出占位符,通常与char搭配使用。
%c的输入/输出实例:
#include <stdio.h>
int main ()
{
char ch; //或者 unsigned char ch;
scanf("%c",&ch);
printf("%c",ch);
return 0;
}
%d —— 十进制输入/输出,通常与int搭配使用。
%d的输入/输出的实例:
#include <stdio.h>
int main ()
{
int a;
scanf("%d",a);
printf("%d",a);
return 0;
}
拓展小知识:
%nd:n是一个整数,按照宽度n输出,并且右对齐方式输出。若数的位数不够n位,则会在这个数的左边补空格直到右对齐。
%2d输出的实例代码如下:
#include <stdio.h>
int main ()
{
const int n = 8;
int count[n] = {1,2,3,4,17,18,19,20};
for (int i = 0; i < n; i++)
{
printf("%2d\n",count[i]);
}
return 0;
}
输出以下结果:
1 2 3 4 17 18 19 20
仔细看看输出结果第四行的4和第五行的17,不难看出这两个数是右对齐的。
%.nd 或 %0nd:n是一个整数,按照宽度n输出,并且右对齐方式输出。若数的位数不够n位,则会在这个数的左边补0直到右对齐。
%02d 或 %.2d输出的实例代码如下:
#include <stdio.h>
int main ()
{
const int n = 8;
int count[n] = {1,2,3,4,17,18,19,20};
for (int i = 0; i < n; i++)
{
printf("%02d\n",count[i]);
//或者printf("%.2d\n",count[i]);
}
return 0;
}
输出以下结果:
01 02 03 04 17 18 19 20
%ld —— 输入/输出long长整形
%ld的输入/输出实例代码如下:
#include <stdio.h>
int main ()
{
long a;
scanf("%ld",&a);
printf("%ld",a);
return 0;
}
%lu —— 输入/输出无符号long长整型
%lu输入/输出的实例代码如下:
#include <stdio.h>
int main ()
{
unsigned long a;
scanf("%lu",&a);
printf("%lu",a);
return 0;
}
%lld —— 输入/输出long long长整型
%lld的输入/输出实例代码如下:
#include <stdio.h>
int main ()
{
long long a;
scanf("%lld",&a);
printf("%lld",a);
return 0;
}
%u —— 输入/输出无符号十进制,通常和 unsigned int 搭配使用。
%u输入/输出的实例代码如下:
#include <stdio.h>
int main ()
{
unsigned int a;
scanf("%u",&a);
printf("%u",a);
return 0;
}
%hd —— 输入/输出短整型,通常与short搭配使用。
%hd输入/输出的实例代码如下:
#include <stdio.h>
int main ()
{
short a;
scanf("%hd",&a);
printf("%hd",a);
return 0;
}
%f —— 输入/输出单精度浮点数,常与float搭配使用;
%f —— 输入/输出的实例代码如下:
#include
<stdio.h>int
main
(){
float a;
scanf("%f",&a);
printf("%f",a);
return
0;}
%lf —— 输入/输出双精度浮点数,常与double搭配使用。
%lf —— 输入/输出的实例代码如下:
#include
<stdio.h>int
main
(){
double a;
scanf("%lf",&a);
printf("%lf",a);
return
0;}
拓展小知识:
%.nf 或 %.nlf :n是一个整数,输出结果四舍五入后保留n位小数。
举个例子:%.3f 的意思是输出结果四舍五入后保留三位小数。实例代码如下:
#include
<stdio.h>int
main
(){
float a; a = 3.1415926;
printf("%.3f",a);
return
0;}
输出结果如下:
3.142