1.fopen()
原型:FILE * fopen(const char* filename, const char* mode);
说明:
fopen 实现三个功能:为使用而打开一个流;把一个文件和此流相互链接;给此流返回一个FILR指针。
parameter filename--指向要打开的文件名,
parameter mode--表示打开状态的字符串。
"r"以只读方式打开文件
"w"以只写方式打开文件
"a"以追加方式打开文件
"r+"以读/写方式打开文件,如果无文件出错的话
"w+"以读/写方式打开文件,如果无文件生成新文件的话
一个文件可以以文本模式或二进制模式打开,这两种的区别是:
在文本模式中回车被当成一个字符'/n',而二进制模式认为它是两个字符 0x0D,0x0A;如果再文件中读到0x1B,文本模式会认为这是结束符,也就是二进制模式不会对文件进行处理,而文本文件方式会按照一定的方式对数据做相应的转换。
系统默认以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如 _fmode=O_TEXT;这就设置默认打开方式为文本模式;而_fmode=O_BINARY;则设置默认打开方式是二进制方式。
在模式字符串中指定打开的模式,如"rb"表示以二进制模式打开只读文件,"w+t"或"wt+"表示以文本模式打开读/写文件。
此函数返回一个FILE指针,所以申明一个FILE指针后不用初始化,而是用fopen()来返回一个指针并与一个特定的文件相连,如果失败,返回NULL。
2.fclose()
原型:int fclose(FILE* fp);
说明:fclose()的功能就是关闭用fopen()打开的文件。程序编写中,需要注意这两者的对应关系,否则,会造成数据丢失的情况。
如果成功,返回0;失败返回EOF。
3.fputc()
原型:int fputc(int c, FILE* stream);
说明:向流中写一个字符。成功返回这个字符;失败返回EOF。fputc会将参数c转为unsigned char 后传入参数stream指定的文件。
4.fgetc()
原型:int fgetc(FILE* stream);
说明:成功返回这个字符;失败返回EOF。
5.fseek()
原型:int fseek(FILE* stream, long offset, int whence);
说明:此函数一般用于二进制模式打开的文件中,功能是定位到流中指定的位置。
如果成功,返回0,参数offset是移动的字节数,whence是移动的基准,取值是:
符号常量值 基准位置
SEEK_SET0 文件开头
SEEK_CUR1 当前读写的位置
SEEK_END2 文件尾部
6.fputs()
原型:int fputs(const char* s, FILE* stream);
7.fgets()
原型:char* fgets(char* s, int n, FILE* stream);
说明:从流中读一行或指定个字符。从流中读取n-1个字符,除非读完一行,参数s是接受字符串。如果成功,返回s的指针,否则,返回NULL。
8.fprintf()
原型:int fprintf(FILE* stream, const char* format[, argument, ...]);
说明:按照格式输入到流,其用法和printf()相同,不过不是写到控制台,而是写到流。
9.fscanf()
原型:int fscanf(FILE* stream, const char* format[, address, ...]);
说明:从流中按格式读取,其用法和scanf()相同,不过不是从控制台读取,而是从流读取。
10.feof()
原型:int feof(FILE* stream);
说明:检测是否已到文件尾,是返回真;否则,返回0。
11.ferror()
原型:int ferror(FILE* stream);
说明:返回流最近的错误代码,可用clearerr()来清除。cleareer原型是void cleareer(FILE* stream);
12.rewind()
原型:void rewind(FILE* stream);
说明:把当前的读写位置回到文件开始。其实,本函数相当于fseek();
13.remove()
原型:int remove(const char* filename);
说明:删除文件。参数就是删除文件的文件名,成功返回0。
14.fread()
原型:size_t fread(void* ptr, size_t size, size_t n, FILE* stream);
说明:从流中读指定个数的字符。
参数ptr是保存读取的数据,
void* 的指针可用任何类型的指针来替换,如char*、int* 等等来替换;
size是每块的字节数;
n是读取的块数。
如果成功,返回实际读取的块数(不是字节数),本函数一般用于二进制模式打开文件中。
15.fwrite()
原型:size_t fwrite(const void* ptr, size_t size, size_t n, FILE* stream);
说明:与fread对应,向流中写指定的数据。
参数ptr是要写入的数据指针,void*的指针可用任何类型的指针来替换,如char*、int*等等来替换;
size是每块的字节数;
n是要写的块数。
如果成功,返回实际写入的块数(不是字节数),本函数一般用于二进制模式打开的文件中。
16.tmpfile()
原型:FILE* tmpfile(void);
说明:生成一个临时文件。以"w+b"的模式打开,并返回这个临时流的指针。如果失败,返回NULL。在程序结束后,这个文件会被自动删除。
17.tmpnam()
原型:char* tmpnam(char* s);
说明:
生成一个唯一的文件名,其实tmpfile()就调用了此函数,参数s用来保存得到的文件名,并返回这个指针。如果失败,返回NULL。