您的位置:首页 > 编程语言 > C语言/C++

C++笔记 | C fopen函数 fwrite函数 rewind fseek fscanf fprintf等文件操作函数

2018-03-23 13:22 741 查看
首先是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
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐