C语言的输入输出

C语言本身并不提供输入输出语句,输入输出操作是由C函数库(stdio,标准输入输出函数)中的函数来实现的,因为将语句翻译成二进制的的指令是在编译阶段完成的,如果在其中有输入输出语句,可能会在编译阶段处理和硬件有关的问题,会使得编译系统复杂化。

在此介绍几种常用的输入输出函数:

一  getchar() / putchar(),一次操作一个字符。

1.getchar():

int getchar(void)

功能:从键盘获取一个字符。

参数:void,空,不需要参数。

返回值:成功 -> 返回读到字符的ASCII码值;失败 -> EOF(-1)。

2.putchar():

 int putchar(int c)

 功能:  输出一个字符

 参数:要输出的字符(字符的ASCII码值)

 返回值: 成功 -> 返回输出了的字符的ASCII码值;失败 -> EOF 。

二  scanf() / printf(),格式化的输入输出函数

1.printf():格式化输出函数 

int printf(const char *format, ...)

int printf("格式化字符串",输出的参数列表)

(1)格式化字符串:普通字符原样输出。

                                  格式化字符(占位符),按照指定的格式,替换为后面对应的参数值。

(2)占位符

整型: %d     --- 转换为有符号十进制 形式
            %u     --- 转换为无符号十进制 形式
            %x     --- 转换为十六进制形式   
            %X     --- 十六进制中的字母转换为大写形式 
            %o     --- 转换为八进制形式
 
浮点:%f      --- 转换为小数形式输出默认保留6位小数 
           %e      --- 转换为科学计数法形式
           %E      --- 输出结果中的e输出为大写   
           %g      --- 转换为更简洁的一种方式输出,不会输出多余的0

字符:%c      --- 转换为字符形式输出
           %s      --- 转换为字符串形式输出 

(3)辅助控制符:%[辅助控制符]d

 #  :%#x        //将 0x 输出(十六进制)
         %#o        //将 0 输出 (八进制)

 m:指定输出宽度,m是一个整数 
        如果数据本身宽度 < m   此时输出数据,默认右对齐,前面默认补空格,也可以补0。
        如果数据本身宽度 >= m  此时输出实际长度数据。
        m为负数时,左对齐 
 
 .n   小数输出 :%.nf    

       字符串输出:%s 表示保留前n个字符

%ld:输出长整型

%lld:输出更长的整型

%Lf :专门输出 long double

2.scanf():格式化输入函数

int scanf(const char *format, ...)

int scanf("格式化字符串", 地址列表)

scanf与printf函数比较类似,此处说明几点需要注意的点:

注意:(1)scanf输入多个数据时,默认以空白符作为分隔符。空白符(空格,回车,tab)

        (2)scanf最后不要出现 '\n'等空白符,如果scanf中出现空白符表示匹配任意多个空白符。

        (3)scanf读取数据过程及读取结束的条件:

                 读取过程:键盘输入的数据(都是字符数据) -> 输入到内存(缓冲区) -> CPU读取

                 结束条件:空白符,遇到非法字符,达到指定宽度。

                 处理缓冲区的垃圾数据(残留数据)有如下方法:使用getchar(),加入空白符进行跳过,%*c(表示跳过一个匹配项或读走一个匹配项。)
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值