C语言中%d和%f是什么意思啊?

Python025

C语言中%d和%f是什么意思啊?,第1张

%d表示输入或输出十进制有符号数;%f表示输入或输出浮点数(float,四字节表示);在C语言中输出不同数据时需要用到不同的格式字符,%d是用来输出十进制整型数据的实际长度输出,%f是以小数形式输出单、双精度度数。以下是详细介绍:

1、%d表示输入或输出十进制有符号数;

2、%f表示输入或输出浮点数(float,四字节表示);

3、另%lf表述输入或输出双精度浮点数(double 8字节表示);

4、在输出不同数据时要用不同的的格式字符,比如说这个%d是用来输出十进制整型数据的实际长度输出;%f是以小数形式输出单、双精度度数,隐含输出6位小数;还有很多,如%s(输出字符串)

不一样的,这么都是格式字符,意义如下:

格式字符 意义

d 以十进制形式输出带符号整数(正数不输出符号)

o 以八进制形式输出无符号整数(不输出前缀0)

x,X 以十六进制形式输出无符号整数(不输出前缀Ox)

u 以十进制形式输出无符号整数

f 以小数形式输出单、双精度实数

e,E 以指数形式输出单、双精度实数

g,G 以%f或%e中较短的输出宽度输出单、双精度实数

c 输出单个字符

s 输出字符串

前面加个%,你自己对照下吧

长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。你这个“%lf”,是在定义输入的类型为double(双精度)是用的,不明白,你可以测试下:

#include<stdio.h>

void main()

{ double i

scanf("%lf",&i)

printf("%f\n",i)

}

#include<stdio.h>

void main()

{ double i

scanf("%f",&i)

printf("%f\n",i)

}

我这里用了2个编译器分别测试了下,一个如果定义double行,输入的时候必须要用%lf,一个就不用了,用%f也行,但是精度还是有区别的,综合以上,如果定义double型数据,输入最好是用"%lf" .

简单讲"%d %c"可以以0个或多个空白字符(空格、tab键、回车等)作为分隔符,同时%c不会读取空白字符,%c读取的一定是一个非空白字符,如:

输入1 a,读取的是1和a;

输入2 b,读取的是2和b;

输入3<回车> <回车>c,读取的是3和c。

而 "%d%c"会读取一个数和紧挨着这个数的一个字符(包括空白字符),如:

输入1 a,读取的是1和' '(空格);

输入2b,读取的是2和b;

输入3.a,读取的是3和.;

输入3<回车>c,读取的是3和'\n'(回车)。