头文件:#include <stdio.h>
fopen()作用:用来打开或创建一个普通文件(文本文件/二进制文件)
函数原型:FILE *fopen(const char *pathname, const char *mode);
pathname:要打开的文件的路径名
mode:打开文件的方式,字符串
r 只读打开,光标在文件开头
文件不存在,则报错
r+ 读写打开,光标在文件开头
文件不存在,则报错
w 只写打开,文件不存在则创建
文件存在,则截短(文件内容被清空)
w+ 读写打开,文件不存在则创建
文件存在,则截短(文件内容被清空)
a 追加打开,只写。文件不存在则创建
文件存在,光标在末尾
a+ 读写打开,文件不存在则创建。
原始读的光标在文件开头,原始写的光标在文件末尾
返回值:
成功返回打开文件的指针 FILE*
在标准IO中,FILE*就表示一个已经打开的文件
失败返回NULL,同时errno被设置
函数介绍:fwrite() 是 C 语言标准库中的一个文件处理函数,功能是向指定的文件中写入若干数据块,如成功执行则返回实际写入的数据块数目。该函数以二进制形式对文件进行操作,不局限于文本文件。
函数原型:size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
(1)buffer:是一个指针(也可以是一个数组),对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数,这里我们可以用strlen来计算;
(4)stream:目标文件指针;
例子:将buf的值写入txt文件(非常简单的一个例子,适合初学者)
FILE*fp = fopen("test.txt","a+");
if(fp == NULL)
{
perror("open fp error:");
return -1;
}
//操作
//写入数据
int buf[11] = {1,2,3,4,5,6,7,8,2,3,4};
fwrite(buf,4,11,fp);
//关闭文件
fclose(fp);