c语⾔科学计数法怎么表⽰_C语⾔拓展第六期:格式化输出前边我们学习了不同种类的数据类型,为了将这些数据输出到终端我们学习了printf函数。但前边的学习更多的是简单的套⽤,并没有理解printf语句⾥每个部分的含义。于是我们有了今天的学习内容——C语⾔的格式化输出。在学习了本节内容后,你就可以按照⾃⼰的想法来输出各种格式的语句了。
printf函数是⼀个“可变参数函数” 也就是说printf函数的参数的个数和类型都是可变的,每⼀个参数的输出格式都有属于⾃⼰的格式声明。格式声明由“%”和格式字符组成,如“%d、%f”等,其作⽤是将输出的数据转换为指定的格式然后输出。
printf("%d\n",5);
“5”意为输出的数据为5,%d为以⼗进制整数形式输出,执⾏‘\n’使输出控制移到下⼀⾏的开头。其中"%d\n"称为格式控制字符串,由“格式声明”和“普通字符”组成。普通字符是指在输出时需要在输出的时候原样输出的字符。
printf("单词car中的字母的数量为 %d \n",3);
printf怎么输出字符“单词car中的字母的数量为 %d \n”这⾥边的汉字和空格、换⾏符等就属于普通字符。“,”后⾯的部分叫做“输出表列”,输出表列中是程序需要的⼀些数据,可以是变量、常量或表达式。要想将“输出表列”中的参数进⾏输出,格式控制字符串中必然有⼀个格式声明与之对应,第⼀个格式声明对应第⼀个参数、第⼆个格式声明对应第⼆个参数、以此类推。
在C的学习过程中我们可能不仅仅会看到%d、%f、%c,还可能看到%e、%o、%x、%12d等等⼀系列奇怪的格式声明。它们究竟代表什么意思?
%d 表⽰⼗进制、有符号的形式输出 int 类型的整数。
printf("%d\n%d\n",5,-16);
%u 表⽰⼗进制、⽆符号的形式输出 int 类型的整数。
printf("%u\n%u\n",5,-16);
这时我们发现在输⼊为正数的时候程序正常输出正数,但是在输⼊为负数的时候,输出变为了⼀个⼗分奇怪的数。它似乎是⼀个随机产⽣的很⼤的数。其实不然,多次试验过后你会发现——如果是-x的话,输出 4294967496-x。在学习了补码等相关知识后就会明⽩为什么会输出这样⼀个数了,现在我们先知道结果就好了。我们已经尝试了不按照格式随意输⼊数据,得到的结果与我们预期相差甚远。有了这次的教训我们以后⼀定要在输⼊输出的时候注意——格式声明要和参数相对应。
对于整型数据:
%hd、%d、%ld 分别表⽰以⼗进制、有符号的形式输出 short、int、long 类型的整数。
%hu、%u、%lu 分别表⽰以⼗进制、⽆符号的形式输出 short、int、long 类型的整数
对于字符型数据:
%c⽤来表⽰⼀个字符
printf("%c\n",'A');
有些⽐较调⽪的同学可能还会⽤⼀些不符合要求的输⼊数据去尝试,来观察电脑的反映。这时候如果你去输⼊⼀个整数,⽐
如“36”和“122”。
printf("%c\n%c\n",36,122);
这时候你会发现输⼊的是数字,输出的却可能是字母或符号。这是因为如果输⼊的整数在0~127范围内,输出时系统会将该数作为ASCII码转换成相应的字符。如果整数⽐较⼤,则把它的最后⼀个字节的信息以字符形式输出。
printf("%c\n%c\n",121,377);
以%c格式输出时,只考虑⼀个字节,377的最后⼀个字节中的信息是01111001,即⼗进制的121,这也是“y”的ASCII代码。
想了解更多关于 ASCII 的内容,这⾥我们引⽤了百度百科的内容: baike.baidu/item/ASCII/309296?fromtitle=ascii %E 7%A0%8 1%E8%A1%A8&fromid=19660475&fr=aladdin 除了以上两种格式符之外还有很多对应其他数据格式的格式符, %s——⽤来输出⼀个字符串
printf("%s\n","FUNQU KE TANG");
%f——⽤来输出实数
printf("%f\n",5.0);
这⾥输出的数据不指定长度,实数部分全部输出,⼩数部分只输出6位。
如果想更改⼩数的位数,可以通过在“%.n”的⽅式来更改。
printf("%.3f\n",56.7896);
这⾥的n就是保留⼩数的位数,保留的时候对后边的数据采取四舍五⼊的保留⽅法。
如果想对数据的宽度做出调整呢,只需要按照“%m.n”的格式来输⼊格式符就可以了,其中m是数据的宽度,也就是列数,n依旧是保留⼩数的位数。我们举个例⼦⼤家就明⽩了。
printf("%10.2f\n",213.5);
“2”的前边还有四个“空格”。这⾥我们看到输出结果是右对齐的,在程序中默认的输出结果是右对齐的,如果想要左对齐只需要
在“m”前边加上个“-”。
printf("%-10.2f\n",213.5);
加上“-”也就是减号后数据就左对齐了。相应的“+”是右对齐,但是由于默认的也是右对齐,我们⼀般就
将这个“+”省略了。
printf("%+10.2f\n",213.5);
这时的结果是这样的。
最后⼀个我们要介绍的是使⽤科学计数法来输出数据。格式也很简单“%e”或“%E”两者唯⼀的区别就是输出时表⽰科学计数法中
的“e”是⼤写还是⼩写。
printf("%E\n",213.5);
printf("%e\n",213.5);
其他的格式符还有诸如⼋进制的“%o”、⼗六进制的“%x”等使⽤⽅式和上⾯介绍的差不多,理解其原理之后,稍稍修改⼀下代码便可以轻松使⽤。我们这⾥便不再⼀⼀赘述了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论