C语言输入输出
格式化输入/输出
pintf
格式化
常用的输出格式为:%m.pX
-
X
代表转换的类型,常用的有:-
代表科学记数法的
e
; -
代表十进制整数的
d
; -
代表普通小数的
f
; -
根据数的大小来决定是科学记数学是普通小数的
g
;
-
代表科学记数法的
-
m
代表最小的整体长度,不足时补上空格。默认是右对齐,加上负号可以指定为左对齐。 -
p
代表精度,具体使用按X
代表的类型来决定。
scanf
存入的目标是指针,别忘记前置符号&
。
读取方式
- scanf 会从左向右读取输入的字符串。
- 如果遇到一个或多个空白字符,scanf 函数会一直读取直到遇到一个非空白字符。
-
如果遇到一个非空白字符,scanf 函数会把它与下一个要读取的格式比较:
- 如果匹配就存入;
- 如果不匹配 scanf 函数会放弃对这个字符串的处理。
- 读完了最后一个匹配的项目后,如果还有字符会留给下了一个 scanf。
整数的格式化读写
-
无符号整数读写时
-
u
表示十进制 -
o
为八进制 -
x
为十六进制
-
-
短整数表示为在
d
、o
、u
、x
前加上字母h
-
长整数表示为在
d
、o
、u
、x
前加上字母l
-
C99的长长整数表示为在
d
、o
、u
、x
前加上字母ll
。
输出没有办法在 printf 输出时用符号表示负的八进制或十六进制。只能用程序判断:
if (i < 0) { printf("-%x", -i); } else { printf("%x", i); }
浮点数的格式化读写
e
、f
、g
都用于读写float:
-
只有在scanf函数中,读取double的方法在
e
、f
、g
前加字母l
-
printf函数不加
l
可以同时处理float和double -
读写
long double
类型在e
、f
、g
前加字母L
。
指针类型的格式化读写
在 printf 函数中通过转换符"%p" 来显示指针指向的地址。