C的输入函数

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

第一块:输入

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

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

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

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

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

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

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

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

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

第二块:终止输入

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

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

这里就用if(ch==' ')的时候,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