读和写流-鸿鹄论坛_华为认证h35-211-hcnp-access network题库
读和写流一旦打开了流,则可在三种不同类型的非格式化I / O中进行选择,对其进行读、写操作。5.11节说明了格式化I / O函数,例如printf和scanf。每次一个字符的I / O。一次读或写一个字符,如果流是带缓存的,则标准I / O函数处理所有缓存。每次一行的I / O。使用fgets和fputs一次读或写一行。每行都以一个新行符终止。当调用fgets时,应说明能处理的最大行长。5.7节将说明这两个函数。直接I / O。fread和fwrite函数支持这种类型的I / O。每次I / O操作读或写某种数量的对象,而每个对象具有指定的长度。这两个函数常用于从二进制文件中读或写一个结构。5.9节将说明这两个函数。直接I/O(direct I/O)这个术语来自ANSI C标准,有时也被称为:二进制I / O、一次一个对象I / O、面向记录的I / O或面向结构的I / O。以下三个函数可用于一次读一个字符。
include
int getc(FILE *fp);
int fgetc(FILE *fp);
int getchar(void);
三个函数的返回:若成功则为下一个字符,若已处文件尾端或出错则为EOF。函数getchar等同于getc(stdin)。前两个函数的区别是getc可被实现为宏,而fgetc则不能实现为宏。这意味着:getc的参数不应当是具有副作用的表达式。因为fgetc一定是个函数,所以可以得到其地址。这就允许将fgetc的地址作为一个参数传送给另一个函数。调用fgetc所需时间很可能长于调用getc,因为调用函数通常所需的时间长于调用宏。检验一下
在了解这些基本概念后,建议读者可以参考更多相关资料以深入学习和实践这些I / O操作。可以参考的链接如下: