C 笔记 输入输出

来源:互联网 发布:人工智能的技术原理 编辑:程序博客网 时间:2024/06/06 06:57

 

ANSIC 进一步对I/O的概念进行了抽象;
就C程序而言,所有的I/O操作都是简单的从程序中移进
移出字节的事情。
这种字节流便被称为流(stream)

绝大多数流都是完全缓冲
就是说读取和写入实际上是在操作一块被称为
buffer的内存区域;

流分为两种:
文本流(text)和二进制流(binary)。

文件:
stdio.h所包含的声明之一就是 FILE结构;
请不要把它和存储于磁盘撒谎那个的数据文件相混淆;
FILE是一个数据结构,用于访问一个流
通常我们对磁盘上的数据文件进行操作的时候,本质上就是
相当于Linux中的重定向;
把FILE 和数据文件关联,然后把输入输出流引进数据文件
而不是平时所用的标准输入(键盘)标准输出(屏幕)。

I/O函数以三种基本的形式处理数据;
单个字符;getchar putchar
文本行:   gets puts scanf printf
二进制数据;fread fwrite

 

字符操作函数:
int fgetc( FILE *stream);
int getc(FILE *stream);
int getchar( void );

需要操作的流作为参数传给getc和fgetc
但getchar始终从标准输入读取,,从标准输出输出;
每个函数都把读到的字符作为返回值返回
如果没有字符,则返回EOF。
三个函数之所以返回类型为int 主要就是要返回EOF的原因;

写入字符:
int fputc( int character, FILE *stream);
int putc( int character, FILE *stream);
int putchar( int character);
写入失败时,返回EOF

让人比较吃惊的是:
getc, putc, getchar, putchar
其实都是#define 定义的宏;

 

(待续)