输入输出函数

目录:

        1.单字符I/O

        2.printf()与scanf()格式化输入输出函数

介绍输入输出

         输出/输入函数不是C定义的一部分,C把开发这些函数的任务编译器的实现者来完全。是为了保证移植性和通用性好,而实际应用中,ANSI C库包含大量的UNIX I/O函数,所有系统都通用的标准I/O函数、ANSI C标准发布后,C把stdio.h头文件与getchar()和putchar()相关联。

        从键盘输入到程序中,先会将数据存到缓冲区中、缓冲区有分为完全缓冲I/O(文件)、行缓冲I/O(键盘)。完全缓冲I/O是当缓冲区填满时刷新缓冲区(将数据发送到目的地)、通常出现在文件输入中。键盘输入属于行缓冲I/O,而行缓冲I/O通常是按行缓冲输入的,按下回车键才发送数据。

一、单字符I/O       

        单字符I/O:getchar()与putchar(),每次只处理一个字符,虽然只能处理一个字符,但是大多数文本处理程序所用的核心方法都是使用单字符I/O函数,返回值是获取到的字符对应得ASCII。putchar()失败时返回-1.

二、格式化I/O:printf()和scanf()

        2.1、printf()函数

        使用printf()函数打印数据指令要与打印数据类型相匹配,例如打印整数时使用%d,打印字符时使用%c。这些符号称为转换说明,它们指定了如何把数据转换成可显示的形式。,先列出ANSIC标准为printf()提供的转换说明,printf()返回值是字符的个数

%d or %i 有符号十进制整数数
%u无符号十进制整数
%o无符号八进制整数
%f浮点数、十进制计数法
%x or %X无符号十六进制整数(0x or 0X)
%e or %E浮点数、e计数法
%g or %G浮点数、有效小数(不会输出无意义的0)
%c单个字符
%s字符串
 %p指针
%%打印一个百分号

printf()的转换说明修饰符:在%和转换字符之间插入修饰符可修饰基本类型的转换说明。

#

把结果转换为另一种形式,如果是%o,则以0开始;如果是%x或%X则以0x或0X开始
0对于数值格式、用前导0代替空格填充字段宽度
数字

 最小字段宽度,如果该字段不能容纳打印的数字或字符串时,则数字或字符串做为实际宽度、默认向右对齐。

- 数字:表示向左对齐,注意前面不能加其它的说明符如“%05d”这样会出现报错。

.数字

对于%e、%E、%f、转换,表示小叔点右边数字位数

对于%g%G转换、表示有效数字最大位数

对于%s转换,表示打印字符串最大长度

l与整数说明一起使用,表示long类型的
ll与整数说明一起使用,表示long long类型的
h与整数说明一起使用,表示short int 和unsigned short int类型的
hh与整数说明一起使用,表示signed char 和unsigned char
L和浮点型说明转换一起使用,表示long double

        2.2、scanf()函数

        scanf()转换说明与printf()函数得转换说明几乎相同,主要区别在浮点型,printf()都使用%f、%e、%E、%G、%g转换说明,而在scanf中是下表得转换说明。

%f输入一个floa类型得数据
%lf输入一个double类型得数据
`%Lf输入一个long double类型数据
%ld输入一个long整型数据
%lld输入一个long long整型数据

        在scanf中也是可以使用修饰符的。

*抑制赋值,或者说匹配一个数据不给任何人
数字最大字段宽度、输入达到最大宽度或空白字符停止
t整数转换说明后面是,表明使用两个指针差值得类型
z整数转换说明后面时、表明使用szieof的返回值

        在使用scanf()要注意一下几点:

        1.scanf()格式控制字符串中,尽量不出现普通字符,一般只写占有符。写了普通字符要把普通字符也要输入进去,否则运行不对。

        2.scanf中一定要有有效地址,不能访问系统地址。

        3.scanf输入结束的条件(匹配结束条件时、空格、tab、回车)。

        4.scanf格式控制字符串中、出现空白字符、表示匹配任意多个空白字符,不要在最后加上空白字符,导致scanf退不出去。

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值