fopen()
#include <stdio.h>
FILE *fopen(const char *path, const char *mode);
mode
指定文件的打开模式:
- r:只读方式打开一个文本文件(该文件必须存在)
- r+:可读可写方式打开一个文本文件(该文件必须存在)
- w:只写方式打开一个文本文件(若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件)
- w+:可读可写方式创建一个文本文件(若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件)
- a:追加方式打开一个文本文件(若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留))
- a+:可读可写追加方式打开一个文本文件(若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留))
a 和 a+ 的区别:a 不能读,a+ 可以读
- rb:只读方式打开一个二进制文件(使用法则同r)
- rb+:可读可写方式打开一个二进制文件(使用法则同r+)
- wb:只写方式打开一个二进制文件(使用法则同w)
- wb+:可读可写方式生成一个二进制文件(使用法则同w+)
- ab:追加方式打开一个二进制文件(使用法则同a)
- ab+:可读可写方式追加一个二进制文件(使用法则同a+)
返回值
fopen() 的返回值是一个 FILE 类型的指针,若打开失败则返回 NULL。
#include <stdio.h>
#include <string.h>
int main()
{
//FILE *fopen(const char *path, const char *mode);
FILE *fp;
char *str = "chenlichen shuai!!!";
char readBuf[128] = {0};
fp = fopen("./file1","w+");
// size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
fwrite(str,sizeof(char),strlen(str),fp);
//fwrite(str,sizeof(char)*strlen(str),1,fp);
//int fseek(FILE *stream, long offset, int whence);
fseek(fp,0,SEEK_SET);
//size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
fread(readBuf,sizeof(char),strlen(str),fp);
printf("read data:%s\n",readBuf);
return 0;
}
read data:chenlichen shuai!!!