C Primer 始于2014-11-12文字颜色说明:正文中的黑色粗字体表示首次看时,觉得比较重要的文字正文中的红色表示,复习笔记后添加的知识点
ANSI(American National Standards Institute) 美国国家标准协会第13章 文件输入输出13.1 和文件进行通信13.1.1 文件是什么C将文件看成是连续的字节序列,其中每一个字节都可以单独的读取;13.1.2 文本视图和二进制视图二进制视图中,每一个字节都可以为程序所访问;文本视图中,不同的操作环境(操作系统),程序所看到的内容和文件有可能不同(例如行尾的标志)13.1.4 标准文件C语言提供3种标准文件。标准输入、标准输出、标准错误输出;标准输入:getchar()、gets()、scanf()标准输出:putchar()、puts()、printf()13.2 标准I/O13.2.1 检查命令行参数return 0 与exit(0)的区别:最初调用的main函数中二者是一样的,main在一个递归程序中时,exit()会终止程序,而return只返回递归的前一级。在main函数以外的函数中调用exit也会终止程序13.2.2 fopen()函数fopen(参数1,参数2)参数1:是一个地址(指针或数组),数组中包含要打开的文件名参数2:是一个字符串,指定打开文件的模式。有以下7大类模式“r” 打开一个文本文件,可以读取文件“w” 打开一个文本文件,可以写入文件,先将文件长度截为0。若该文件不存在,先创建“a” 打开一个文本文件,向已有文件的尾部追加内容。若不存在,先创建“r+” 打开一个文本文件,可以进行更新,也可以读取和写入“w+” 打开一个文本文件,可以进行更新(读取和写入)。先将文件长度截为0,没有则先创建“a+” 打开一个文本文件,可以进行更新(读取和写入),读取整个文件,写入时只能向尾部追加内容返回:fopen函数返回一个文件指针fp,这个指针指向FILE(stdio.h中定义的一种派生类型),fp指向关于文件的信息的数据包。如果不能打开文件则返回一个空指针NULL。13.2.3 getc()函数和putc()函数getc() ch = getc(fp) 表示从fp指定的文件中获得一个字符;putc(参数1,参数2)putc(ch,fpout) 表示将字符ch写入到FILE指针fpout指定的文件中13.2.4 2文件结尾从文件中读取数据的程序需要在到大文件的结尾时停止。到达文件结尾时,getc()函数会返回一个特殊值EOF13.2.5 fclose()函数Fclose(fp)关闭由指针fp指定的文件,同时根据需要刷新缓冲区。13.2.6 标准文件指针包含3个标准文件指针:stdin(标准输入)、stdout(标准输出)、stderr(标准错误)13.3 一个简单的文件压缩程序13.4 文件I/O每个I/O函数都存在一个相似的文件I/O函数。文件I/O函数需要使用一个FILE指针来为这些函数指定要操作的文件。13.4.1 fprintf()和fscanf()函数fprintf()和fscanf()fprintf/fscanf(参数1,参数2,参数3) 参数1为FILE指针;例如fprintf(fp,“%s”,words)其中fp是FILE指针,words是数组名称;rewind(参数1) 使程序回到文件开始处,参数1必须是一个文件指针;13.4.2 fgets()和fputs()函数fgets(参数1,参数2,参数3) fgets(buf,max,fp)参数1:一个地址,用于存储输入值的地址参数2:一个整数,输入字符串的最大长度参数3:一个文件指针,这个指针指向要读取的文件返回值:返回传递给它的地址值,当遇到EOF时,返回NULLfgets()函数读取到它遇到的第1个换行字符的后面,或者读取比字符串的最大长度少一个的字符,或者读取到文件结尾。然后fgets()向末尾添加一个空字符以构成一个字符串。如果fgets在达到字符最大数目之前读完一整行,它将在字符串的空字符前添加一个换行符以表示一行结束。Fputs(参数1,参数2) 把字符串地址指针所指的字符串写入指定的文件。(与fgets相比,没有写入的长度,因为字符串包含结束符)参数1:一个地址,是要写入到文件的字符串的地址参数2:一个文件指针,指向要写入字符串的文件fgets保留了换行符,fputs