内,外
是以
CPU
为主而说。
例如
计算结果送往打印机,
站在打印机立场,计算结果从计算机输入到打印机。站在CPU
立场,计算结果从计算机输出到打印机。
为避免混淆,计算机的输入输出,内外以
CPU
为主。站在
CPU
立场判断。
外部介质,指计算机的外部设备,硬盘,光盘,磁带。内部介质指运算器寄存器。
数据的集合,指一堆数据。数字计算机里,全是数字,不是1就是0。C源程序当然也可以作为数据文件,字符(
ASCII值)也是数据。
文件是专门用来存放数据的,对于一个C程序,你可以从键盘输入数据,可以向屏幕输出数所。但如果,你想处理一个成绩表,而成绩表存在一个记事本里面,而你又不想将数据一个一个的输进去,这时你就可以用文件操作语句,打开存着成绩表的记事本,然后将成绩表中的数据用相应的语句传给C语言中的变量,然后再进行运算处理。当然,记事本中的数据格式,要与你C语言中的操作语句相匹配。主要是两种文件类型:1)文本文件,2)二进制文件。一般来说,人类可读的文件都作为文本文件,例如一片文章。其余都作为二进制文件,例如一个程序。
在C语言中,文件的操作是通过FILE结构体进行了,利用fopen返回一个指向FILE结构体的指针,在使用fopen函数过程中,使用mode控制符对是否打开哪类文件进行控制:
FILE *fopen( const char *filename, const char *mode )
filename:文件名,mode:打开的模式,规定了是可读、可写、追加之类的属性。
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
如果调用失败,返回一个空指针。