首先是fopen函数
和printf一样,需要cstdio头文件
原型为
FILE * fopen(const char * path,const char * mode);
返回一个FILE类型指针
Path为调用路径,mode为调用方式,共有一下几种方式:
-- mode: 文件打开方式,例如:
"r" 以只读方式打开文件,该文件必须存在。
"w" 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
"w+" 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
"a" 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
"a+" 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。(原来的EOF符不保留)
"wb" 只写打开或新建一个二进制文件,只允许写数据。
"wb+" 读写打开或建立一个二进制文件,允许读和写。
"ab" 追加打开一个二进制文件,并在文件末尾写数据。
"ab+"读写打开一个二进制文件,允许读,或在文件末追加数据。
--返回值: 文件顺利打开后,指向该流的文件指针就会被返回。
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
这个是fwrite函数,第一个参数是需要写入的指向内容的指针,第二个是写入数据的大小,第三个参数为写入数据的个数,第四个参数为写入的文件指针
Fseek函数:
需要cstdio头文件
int fseek(FILE *stream, long offset, intfromwhere);
将文件指针stream移动到文件中formwhere的位置向后偏移offset的位置,这里需要注意的是,offset为long类型,0L这种写法表示是Long类型的0,offset这个位置使用0是不对的
参数 fromwhere为下列其中一种:
SEEK_SET 从距文件开头offset位移量为新的读写位置. SEEK_CUR 以目前的读写位置往后增加offset个位移量.
SEEK_END 将读写位置指向文件尾后再增加offset 个位移量. 当whence 值为SEEK_CUR 或
SEEK_END 时, 参数offset允许负值的出现.
返回值:当调用成功时则返回0, 若有错误则返回-1
int fprintf(FILE*stream, const char *format, ...)
使用FILE指针stream来发送相关信息到文件中,文件指针会后移
比如fprintf(fp,"%d\n",a[i]);
void rewind(FILE *fp)
作用:使文件fp的位置指针指向文件开始。
fscanf(FILE *fp, const char *format, agars)
文件读入,把fp中的内容按照format的格式进行文件读入agars,
比如fscanf(fp,"%d",&k);
fclose(fp);
关闭文件流fp