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

C语言-09-文件操作

2016-02-17 09:09 281 查看

文件类型

文本文件(ASCII)

简单的文本文件,可用任何文字处理程序阅读

二进制文件

包含 在ASCII及扩展ASCII字符中编写的数据或程序指令 的文件,通常图形文件及文字处理程序等计算机程序都属于二进制文件

文件访问模式

文本文件

“r”

打开一个已有的文本文件,允许读取文件

“w”

打开一个文本文件,允许写入文件。若文件不存在,则创建一个新的文件

“a”

打开一个文本文件,以追加模式写入文件。若文件不存在,则创建一个新的文件

“r+”

打开一个文本文件,允许读写文件

“w+”

打开一个文本文件,允许读写文件,文件会被截断为0长度。若文件不存在,则创建一个新的文件

“a+”

打开一个文本文件,允许读写文件。从头读取,追加写入。若文件不存在,则创建一个新的文件

二进制文件(对应于文本文件访问模式)

“rb” ~> “r”

“wb” ~> “w”

“ab” ~> “a”

“rb+” ~> “r+”

“r+b” ~> “r+”

“wb+” ~> “w+”

“w+b” ~> “w+”

“ab+” ~> “a+”

“a+b” ~> “a+”

文件操作流程

打开文件

// filename:文件路径名  mode:文件访问模式
FILE *fopen(const char * filename, const char * mode)


操作文件

读取文件

// 读取一个字符
int fgetc(FILE *fp)
// 读取 n-1 个字符(字符串后面有一个字符串结束标志,buf的长度为n)
char *fgets(char *buf, int n, FILE *fp)
// 在文件结束之前遇到空格,换行符,会提前终止
int fscanf(FILE *fp, const char format)


写入文件

// 写入一个字符
int fputc(int c, FILE *fp)
// 写入一个字符串
int fputs(const char *s, FILE *fp)


关闭文件

写入文件的内容,只有在调用fclose(FILE *fp)后,才会被写入到磁盘文件中

在关闭文件前,读取磁盘文件,无法读取文件的最新内容(写入但未保存的内容)

int fclose( FILE *fp )


示例

文件的简单操作

void fileOperation() {
// 打开文件, 若不存在,则会目录/Users/mac/Desktop/下创建一个文件file.text,访问模式为:读写
FILE *fwp = fopen("/Users/mac/Desktop/spring.txt", "r+");
// 写入 “春已暖,花已开,什么时候去看海” 到文件中
fputs("春已暖,花已开,什么时候去看海", fwp);
// 关闭文件,此处可以调试写入的内容是何时保存到磁盘文件的
fclose(fwp);
// 读取文件
FILE *frp = fopen("/Users/mac/Desktop/spring.txt", "r+");
char buffer[255];
fscanf(frp, "%s", buffer);
printf("文件的内容为:\n%s\n", buffer);
// 关闭文件
fclose(frp);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: