上一篇我们介绍了什麽是变数,也结合了资料型态来让大家了解,接下来大家有没有想过,如果遇到需要让使用者输入资料来处理,并输出对应结果时要怎麽办呢?
接下来我们来结合变数,储存输入并输出资料内容吧!
在前面我们有提到过资料是有不同形态(字元、整数、浮点数等等的)的,而我们会用不同资料型态的变数来储存这个资料,但如果今天我们要把变数输出或读取输入储存到变数里时,要怎麽做处理才能让电脑知道这个被输入或输出的资料,要以什麽样的格式输出、要以什麽样的型态储存?
这时候我们就会用到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) | 存什麽样的资料 | 格式指定字 |
---|---|---|---|
char | 1 | 字元,举凡a~z/0~9/单一符号(+-/*%$#@等) | %c |
int | 4 | 整数,数字范围从-2147483648~2147483647 | %d |
float | 4 | 单精确度浮点数,即小数 | %f |
double | 8 | 双精确度浮点数,即小数 | %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」) |
指令字 | 说明 |
---|---|
%c | 字元(是单一的字元) |
%s.%S | 字串(是多个字元) |
指令字 | 说明 |
---|---|
%p | 输出指标 |
%% | 用於输出时输出「%」 |
%* | 是忽略符号,应用如%*d、%*c、%*s,会让程序忽略、丢弃这个资料 |
%数字 | 是设定资料宽度的用法,多用於输出,应用如%10d.%15s |
%-数字 | 是设定置左的用法,同时也设定资料宽度,多用於输出,应用如%-10d.%-15s |
%[] | 用於输出时只读取「[]」内的字元,遇到非其内字元会停止读取,应用如%[aAbB]s、%[a-z]s |
%[^] | 用於输出时只读取「[]」之外的字元,遇到为其内字元时会停止读取,应用如%[^aAbB]s、%[^a-z]s |
到这里就大致介绍完格式指令词了,如果有兴趣可以参考以下:
microsoft docs
看完上面的格式指令字应该大概知道一些语法了,接下来有些特殊字元也跟输出格式十分相关:
特殊字元 | 说明 |
---|---|
\n | new line的意思,即换行之符号 |
\0 | 字串结束符,输出字串时遇到这个特殊字元就会结束输出 |
\t | tab,跳格 |
\r | 回到该行字首,输出时会覆盖先前输出(Ex. 输出12345\raaaa时为「aaaa5」) |
\b | backspace,倒退一格输出时可能覆盖先前输出(Ex. 输出12345\baaaa时为「1234aaaa」、输出12345\b时为「12345」) |
\a | bell,会发出系统声 |
\ | 」 |
\' | 输出「'」 |
\" | 输出「"」 |
>>: 【从零开始的 C 语言笔记】第八篇-printf 介绍与应用
...为什麽 PHP 的变数宣告要使用 $ 符号?...PHP 在变数前使用 $ 的用意是提醒开发...
Unity有内建的动画系统,简单的小动画可以使用Animation完成 本次章节会先用Cube做出简...
衔接上一篇,接着我们要计算Sign,以下为计算图 5.4.4. 安全签章计算(Sigh) 在产出安全...
在前面的一些示例中,我们见过 $,@ 等等,这样的符号,但没有详细地说明这些符号的用途,今天我们就来...
会员中心主页 预期於会员中心主页可以有订单纪录及基本资料设定几个功能,先按照实作制作,这部分都是直接...