1.C 文件读写:html
一个文件,不管它是文本文件仍是二进制文件,都是表明了一系列的字节。C 语言不只提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件。数组
a.打开文件:安全
FILE *fopen( const char * filename, const char * mode );ide
filemame是文件名,mode是指模式---好比说 "r" 指打开一个已有的文本文件,容许读取文件。详情网上随便都有。函数
sub: 若是fopen显示不安全,就声明一个 #define _CRT_SECURE_NO_WARNINGSspa
b.关闭文件:指针
int fclose( FILE *fp );code
若是成功关闭文件,fclose( ) 函数返回零,若是关闭文件时发生错误,函数返回 EOF。这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的全部内存。EOF 是一个定义在头文件 stdio.h 中的常量。orm
c.写入文件:htm
int fputc( int c, FILE *fp );
函数 fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。若是写入成功,它会返回写入的字符,若是发生错误,则会返回 EOF。
int fputs( const char *s, FILE *fp );
函数 fputs() 把字符串 s 写入到 fp 所指向的输出流中。若是写入成功,它会返回一个非负值,若是发生错误,则会返回 EOF。您也能够使用:
int fprintf(FILE *fp,const char *format, ...)
函数来写把一个字符串写入到文件中。
d.读取文件:
下面是从文件读取单个字符的最简单的函数
int fgetc( FILE * fp );
若是是字符串:
char *fgets( char *buf, int n, FILE *fp );
函数 fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串。
若是这个函数在读取最后一个字符以前就遇到一个换行符 '\n' 或文件的末尾 EOF,则只会返回读取到的字符,包括换行符。
e. 二进制 I/O 函数:
下面两个函数用于二进制输入和输出:
这两个函数都是用于存储块的读写 - 一般是数组或结构体。
f.在指定位置开始读取:
fseek 能够移动文件指针到指定位置读,或插入写
具体:
int fseek(FILE *stream, long offset, int whence);
fseek 设置当前读写点到 offset 处, whence 能够是 SEEK_SET,SEEK_CUR,SEEK_END 这些值决定是从文件头、当前点和文件尾计算偏移量 offset。
你能够定义一个文件指针 FILE *fp,当你打开一个文件时,文件指针指向开头,你要指到多少个字节,只要控制偏移量就好,例如, 相对当前位置日后移动一个字节:fseek(fp,1,SEEK_CUR); 中间的值就是偏移量。 若是你要往前移动一个字节,直接改成负值就能够:
fseek(fp,-1,SEEK_CUR);
注意: 只有用 r+ 模式打开文件才能插入内容,w 或 w+ 模式都会清空掉原来文件的内容再来写,a 或 a+ 模式即总会在文件最尾添加内容,哪怕用 fseek() 移动了文件指针位置。