【从零开始的 C 语言笔记】第七篇-格式指定字 & 特殊字元

不怎么重要的前言

上一篇我们介绍了什么是变数,也结合了资料型态来让大家了解,接下来大家有没有想过,如果遇到需要让使用者输入资料来处理,并输出对应结果时要怎么办呢?

接下来我们来结合变数,储存输入并输出资料内容吧!


需要输出变数、或用变数储存输入时怎么办?

在前面我们有提到过资料是有不同形态(字元、整数、浮点数等等的)的,而我们会用不同资料型态的变数来储存这个资料,但如果今天我们要把变数输出或读取输入储存到变数里时,要怎么做处理才能让电脑知道这个被输入或输出的资料,要以什么样的格式输出、要以什么样的型态储存?

这时候我们就会用到c语言中的一个语法--格式指定字,格式指定字听起来好像很複杂,但其实就是代替变数本身来表示整体输入输出格式的存在。

在c语言中我们第一个接触到的输出code就是「printf("Hello World!\n");」,其中「""」包含的东西我们会称他为字串,但是当我们需要输出的字串包含变数时,这时我们就会使用格式指定字,如以下:

#include <stdio.h>int main(){    int a = 3;    printf("your data: %d\n", a);    return 0;}

输出字串中的「%d」就是代替变数a的格式指令字,你可以把它当成变数在字串中的替代词,接下来我们将会介绍格式指令字有哪些。


格式指令字

我们先来複习一下前面第五篇的基本资料型态表吧:

类别所佔记忆体(bytes)存什么样的资料格式指定字char1字元,举凡a~z/0~9/单一符号(+-/*%$#@等)%cint4整数,数字範围从-2147483648~2147483647%dfloat4单精确度浮点数,即小数%fdouble8双精确度浮点数,即小数%f

我们可以从上面的表先简略的知道,基本的资料型态大概可以用这些格式指定字来表示,若只是读取使用者输入时用以上的格式指定字基本上就够了,但其实还有更多的格式指定字,且有时候若要输出资料内容时有其他指定格式,这些便不足以应付了。

所以以下我们会详细整理格式指令字:

整数指令字说明%d.%i十进制有号整数%u十进制无号整数%o八进制有号整数%x.%X十六进制有号整数%ld十进制long int%lld十进制long long int

(备注:有号(signed)、无号(unsigned),可以参考第五篇,不过无号相对较少使用)

浮点数指令字说明%f以小数形式输出浮点数(Ex. 输出12.345时为「12.345000」)%e以科学记号形式输出浮点数(Ex. 输出12.345时为「1.234500e+001」)%E以科学记号形式输出浮点数(Ex. 输出12.345时为「1.234500E+001」)%g依情况使用%f或%e(Ex. 输出0.345时为「0.345」、输出0.0000345时为「3.45e-005」)(虽然一般来说不会使用,但%g的输出判断可以参考这个连结)字元、字串指令字说明%c字元(是单一的字元)%s.%S字串(是多个字元)其他指令字说明%p输出指标%%用于输出时输出「%」%*是忽略符号,应用如%*d、%*c、%*s,会让程式忽略、丢弃这个资料%数字是设定资料宽度的用法,多用于输出,应用如%10d.%15s%-数字是设定置左的用法,同时也设定资料宽度,多用于输出,应用如%-10d.%-15s%[]用于输出时只读取「[]」内的字元,遇到非其内字元会停止读取,应用如%[aAbB]s、%[a-z]s%[^]用于输出时只读取「[]」之外的字元,遇到为其内字元时会停止读取,应用如%[^aAbB]s、%[^a-z]s

到这里就大致介绍完格式指令词了,如果有兴趣可以参考以下:
microsoft docs


格式特殊字元

看完上面的格式指令字应该大概知道一些语法了,接下来有些特殊字元也跟输出格式十分相关:

特殊字元说明\nnew line的意思,即换行之符号\0字串结束符,输出字串时遇到这个特殊字元就会结束输出\ttab,跳格\r回到该行字首,输出时会覆盖先前输出(Ex. 输出12345\raaaa时为「aaaa5」)\bbackspace,倒退一格输出时可能覆盖先前输出(Ex. 输出12345\baaaa时为「1234aaaa」、输出12345\b时为「12345」)\abell,会发出系统声\|输出「\」\'输出「'」\"输出「"」

看到这里我们就大致看完影响字串格式的语法有哪些了,碍于每一种都要示範输出有点麻烦,大家可以多多尝试上面介绍到的语法!

下一篇我们会正式进入列印输出的printf!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章