使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式 意 义
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
对于文件使用方式有以下几点说明:
1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
简单样例代码:
#include <stdio.h> #include<stdlib.h> int main() { FILE *fp; char ch; scanf("%c", &ch); //打开 /* 带后缀+则都可以为读写;带后缀b全变二进制文件; r,只读,文本,不存在则出错; w,只写,文本,不存在则新建文件; a,尾部追加,文本,不存在则出错; */ //顺序写 if ((fp=fopen("test.txt","w+"))==NULL) { printf("文件写未打开\n"); exit(0); } while (ch != '0')//遇到0,回车结束 { fputc(ch, fp);//写 ch = getchar(); } //关闭 fclose(fp);//用一次就要关一次!连着下面用会出错的 printf("文件已关闭\n"); //顺序读 if ((fp = fopen("test.txt", "r+")) == NULL)//fopen("test","r+")返回值是指向文件的指针 { printf("文件读未打开\n"); exit(0); } while (!feof(fp)) { ch = fgetc(fp);//读 putchar(ch);//显示 } //关闭 fclose(fp); printf("文件已关闭\n"); return 0; }
feof(file stream )文件指针到达文件末尾 !feof(fp) 表示没有到达末尾 注意:这个末尾是最后一个字符的下一个位置
在C语言中提供了多种文件读写的函数:
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf
字符读写函数fgetc和fputc
一、读字符函数fgetc
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为: 字符变量=fgetc(文件指针); 例如:ch=fgetc(fp);其意义是从打开的文件fp中读取一个字符并送入ch中。
二、写字符函数fputc
fputc函数的功能是把一个字符写入指定的文件中,函数调用的 形式为: fputc(字符量,文件指针); 其中,待写入的字符量可以是字符常量或变量,例如:fputc('a',fp);其意义是把字符a写入fp所指向的文件中。
字符串读写函数fgets和fputs
一、读字符串函数fgets
函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志' '。例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入字符数组str中。
二、写字符串函数fputs
fputs函数的功能是向指定的文件写入一个字符串,其调用形式为: fputs(字符串,文件指针) 其中字符串可以是字符串常量,也可以是字符数组名, 或指针 变量,例如:fputs(“abcd“,fp);其意义是把字符串“abcd”写入fp所指的文件之中。
大部分说明来自http://www.cnblogs.com/lxy2015/p/5302365.html