C格式化输入输出

1 流
● 所有的输入/输出都是针对流进行的,所谓流就是按行组织的字符的序列
● 通常,标准输入流与键盘相连;标准输出流与计算机屏幕相连
● 操作系统通常都允许将标准输入流和标准输出流重定向到其他设备上
2 用printf函数实现格式化输出
● 格式控制字符串描述输出数据显式的格式。格式控制字符串由转换说明符、标记、域宽、精度和文本字符组成
● 转换说明由一个百分号 % 和一个转换说明符组成
3 打印整数
● 打印整型数据可以使用如下说明符:
1.用d或i显示有符号的整数
2.用o显示无符号的八进制整数
3.用u显示无符号的十进制整数
4.用x或X显示无符号的十六进制整数
5.在转换说明符前面写上h、l或ll分别表示要显示的是一个短整型、长整型或长长整型数据
4 打印浮点数
● 打印浮点数可以使用如下转换说明符:
1.用e或E以指数形式显示
2.用f以正常的浮点形式显示
3.用转换说明符g或G时,可以实现e或E,或f的打印效果。当指示的转换说明符是g或G时,若浮点数的幂值小于–4或大于等于该浮点数的打印精度,则采用转换说明符e或E来打印这个浮点数
4.转换说明符g或G的精度指将打印的最多有效数字的个数
5 打印字符串或字符
● 转换说明符 c 用来打印单个字符
● 转换说明符 s 用来打印一个以空字符结尾的字符串
6 其他的转换说明符
● 转换说明符 p 用系统实现时定义的方式(许多系统采用的是十六进制形式)显示一个地址
● 转换说明符 %% 将输出一个文本字符%
7 带域宽和精度的打印
● 若域宽大于欲打印数据的实际数位,则数据默认地在指定的区域内向右对齐
● 域宽可以与所有的转换说明符一起使用
● 精度与整型转换说明符一起使用时,表示要打印的最少数字位数。若要打印数据的位数小于精度,则会在该数据前面打印若干个前缀0,以保证总的数字位数等于精度
● 精度与浮点型转换说明符e、E或f一起使用时,表示小数点后面的小数位数。精度与浮点型转换说明符g或G一起使用时,表示将要打印出来的有效数字的位数
● 精度与转换说明符 s 一起使用时,表示将要打印出来的字符个数
● 域宽和精度可以放在一起使用,方法是:在百分号和转换说明符之间,先写上域宽然后再加上一个小数点,后面再写上精度
● 还可以通过格式控制字符串后面的实参列表中的整型表达式来指定域宽和精度。方法是:在格式控制字符串中表示域宽和精度的位置上写上一个星号(※)。这样程序将会计算实参列表中相对应的实参值并用其替换星号
8 在printf函数的格式控制字符串中使用标记
● – 标记在域宽内左对齐它的实参
● + 标记在正数面前显示一个加号,在负数面前显示一个减号
● 空格标记在没有采用 + 标记显示的正数前面打印一个空格
● # 标记给输出的八进制数加上前缀0,十六进制数加上前缀0x或0X,并强制以转换说明符e,E,f,g或G打印的浮点数显示出小数点
● 0 标记在不能占满整个域宽的数据前面打印前导0
9 打印文本和转义序列
● 大多数文本序列可以通过将其写在 printf函数 的格式控制字符串中打印出来。但存在一些“问题字符”,例如双引号(""),它本身就是格式控制字符串的定界符,还有各种控制字符,如换行符和制表符,对于这些字符,必须使用转义序列才能打印出来。转义序列由一个反斜线(\)及其随后的特殊转义字符组成
10 用scanf函数读取格式化的输入
● 格式化输入通过scanf函数来实现
● 对于scanf函数,输入任意符号的整数,使用转换说明符 d 或 i ;输入无符号整数,使用转换说明符 o ,u ,x ,X 。将修饰符h,l,ll写在一个整型转换说明符的前面,表示要输入的是一个短整型,长整型或长长整型数据
● 对于scanf函数,输入浮点数,使用转换说明符 e ,E, f, g或G。将修饰符l或L写在任意一个浮点型转换说明符的前面,表示要输入的是一个双精度或长双精度浮点数
● 对于scanf函数,输入字符使用的是转换说明符 c
● 对于scanf函数,输入字符串使用的是转换说明符 s
● scanf函数用扫描集扫描输入的字符,只寻找那些与扫描集中的字符相匹配的字符。一旦找到匹配的字符,那么这个字符将被存储到一个字符数组中。当遇到了一个扫描集中没有包含的字符时,扫描将停止
● scanf函数创建逆向扫描集的方法是,在方括号内扫描字符的前面加一个"脱字符"(^)。这将使得用scanf函数输入的字符中的那些没有出现在逆向扫描集中的字符被保存起来,直到遇到了逆向扫描集中包含的字符为止
● 用scanf函数输入地址值时,使用转换说明符 p
● 转换说明符 n 保存本次scanf函数以输入的字符总数。相应的实参是一个指向整型的指针
● 赋值抑制字符(※)从输入流中读入数据并将其丢弃
● 可以在scanf函数中使用域宽来从输入流中读取指定数目的字符

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枳洛淮南✘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值