文件输入输出第一章
因为最近一直在研究获取usb驱动设备相关数据的内容,所以打算一口气把I/O口相关的知识进行一个简单系统的整理,以免之后在使用的过程中产生对其定义的错误理解。
编程从文件读取读取信息或者将结果写入文件是一种经常性的需求。
在了解文件输入输出之前我们先了解一下字符输入、输出和输入确认。
首先,我们对其关键概念进行一个了解并描述。
C程序将输入视为一个外来字节的流,getchar()函数负责将每个字节解释为一个字符编码。scanf()则是为输入。许多操作系统都提供重定向,这样使您能够用文件代替键盘作为输入,或者用文件代替显示器输出,而不是每次使用都需要重新打印(这是一个字符存储功能。)。对于一个小程序来说,输入确认可能是最复杂的部分。
单字符I/O:getchar()和putchar()每次输入和输出一个字符,此方法是大多数处理文本(即普通单词)的程序核心。下面有个例子来介绍该函数的用法,该过程被称为输入回显,它使用了一个while循环,该循环在遇到#字符时终止。
echo.c
#include<stdio.h>
int main(void)
{
char ch;
while((ch = getchar())! = '#')
putchar(ch);
return 0;
}
ANSI C将stdio.h头文件与使用getchar()和putchar()相关联(典型地,getchar()和putchar()不是真正的函数,而是定义为预处理器宏,这一主题我们之后会进行补充现在用***作标记)运行此程序将产生如下所示的交互式结果:
hello[enter]
hello
gogogo#3gogogo[enter]
gogogo
在这个过程我们仍然可以发现一些使用的矛盾,与其说是矛盾不如将之称之为bug,因为不仅仅是运行不出来那就会是bug,而实际上我们在使用键盘的过程中是不会产生这样的冲突的,所以接下来我们会对键盘输入的处理方式进行学习