C的输入函数

今天主要写下I/0函数。

第一块:输入

输入有2种,非缓冲输入和缓冲输入。

非缓冲输入指的是按下键盘的某个键,内容立刻出来了。举个栗子

while((ch=getchar())!='#'){
  putchar(ch);  
}

若是非缓冲输入,则会出现aabbcc这样的情况,也就是按下什么,立刻输出了。这个在玩游戏的时候很有用。

缓冲输入指的是,按下某个键,内容被输入到缓冲区,当缓冲区读到换行字符的时候,就把缓冲区清空,去缓冲区域的内容送到程序中。

缓冲输入还分行缓冲和完全缓冲。

行缓冲指一行收到了换行符之后,也就是回车,清空缓冲区,把缓冲区内容给程序调用。

PS:按下回车有2个功能,一个是给缓冲区一个\n的换行符,相当于命令的执行把,一个是文本的换行。

完全缓冲指缓冲区满了之后去把内容给程序。

第二块:终止输入

C中用标准的I/O包处理文件,主要是为解决系统差异

比如 A系统用\n表示换行,B用\n\r表示换行。

这里就用if(ch=='\n')的时候,C的标准I/O函数就能很好地处理兼容性问题了。

 

C中有2个流,stdin and stdout

C的I/O函数都是和这2个东西打交道。

C用相同的技术处理文件和stdin。

读取文件,C有个标志来检测读完没。

读取stdin(如键盘输入),C的stdin函数也需要一个标志读完没。

 

一般有3中方法标志把。

a.用行开头的CTRL+Z(windows)标志

b.文件大小,超过了就代表结束了

c.C让getchar函数在读到文件结尾的时候返回一个特殊的值,EOF

所以一般在C中用c来获取文件结尾,文件结束和键盘输入的结束是类似的。

 

转载于:https://www.cnblogs.com/wz0107/p/5334698.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值