谈谈C语言中那些常见的占位符

C/C++
522
0
0
2022-11-14

在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