格式:文件指针名=fopen(文件名,使用文件方式)
参数:
文件名 意义
"C://TC//qwe.txt" 文件C:/TC/qwe.txt
"qwe.txt" 和程序在同一目录下的qwe.txt
文件使用方式 意 义
“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): 二进制文件
+: 读和写
2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
参数:
文件名 意义
"C://TC//qwe.txt" 文件C:/TC/qwe.txt
"qwe.txt" 和程序在同一目录下的qwe.txt
文件使用方式 意 义
“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): 二进制文件
+: 读和写
2. 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3. 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。
如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针
(NULL)。由此可判断文件打开是否成功。
(NULL)。由此可判断文件打开是否成功。
fwrite(将数据写至文件流) 相关函数 fopen,fread,fseek,fscanf 表头文件 #include<stdio.h> 定义函数 size_t fwrite(const void * ptr,size_t size,size_t nmemb,FILE * stream); 函数说明 fwrite()用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr 指向欲写入的数据地址,总共写入的字符数以参数size*nmemb来决定。Fwrite()会返回实际写入的nmemb数目。 返回值 返回实际写入的nmemb数目。 范例 #include<stdio.h> #define set_s (x,y) {strcoy(s[x].name,y);s[x].size=strlen(y);} #define nmemb 3 struct test { char name[20]; int size; }s[nmemb]; main() { FILE * stream; set_s(0,”Linux!”); set_s(1,”FreeBSD!”); set_s(2,”Windows2000.”); stream=fopen(“/tmp/fwrite”,”w”); fwrite(s,sizeof(struct test),nmemb,stream); fclose(stream); } 执行 参考fread()。 fread(从文件流读取数据) 相关函数 fopen,fwrite,fseek,fscanf 表头文件 #include<stdio.h> 定义函数 size_t fread(void * ptr,size_t size,size_t nmemb,FILE * stream); 函数说明 fread()用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。 返回值 返回实际读取到的nmemb数目。 附加说明 范例 #include<stdio.h> #define nmemb 3 struct test { char name[20]; int size; }s[nmemb]; main() { FILE * stream; int i; stream = fopen(“/tmp/fwrite”,”r”); fread(s,sizeof(struct test),nmemb,stream); fclose(stream); for(i=0;i<nmemb;i++) printf(“name[%d]=%-20s:size[%d]=%d/n”,i,s[i].name,i,s[i].size); } 执行 name[0]=Linux! size[0]=6 name[1]=FreeBSD! size[1]=8 name[2]=Windows2000 size[2]=11
来自http://zhidao.baidu.com/question/1064864.html