FILE* fopen(const char *path,const char *mode)
其中path为文件路径,mode为打开方式
1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。若需给出绝对路径,则注意转义字符'\',比如有文件test.txt存放在C盘根目录下,则文件路径参数值应为C:\\test.txt。
2)对于mode,主要由r,w,a,+,b,t六个字符组合而成。
r:只读方式,文件必须存在
w:只写方式,若文件存在,则原有内容会被清除;若文件不存在,则会建立文件
a:追加方式打开只写文件,只允许进行写操作,若文件存在,则添加的内容放在文件末尾;若不存在,则建立文件
+:可读可写
b:以二进制方式打开文件
t:以文本方式打开文件(默认方式下以文本方式打开文件)
下面是常见的组合:
r: 以只读的方式打开文件,只允许读,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部
r+: 以可读可写的方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部
rb+: 以可读可写、二进制方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部
rt+: 以可读可写、文本方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部
w: 以只写的方式打开文件,只允许写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部
w+: 以读写的方式打开文件,允许读写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部
a: 以追加、只写的方式打开文件,只允许写。若文件存在,则追加的内容添加在文件末尾,若文件不存在,则创建文件。打开成功后返回文件指针,位置指针指向文件头部
a+: 以追加、可读写的方式打开文件,允许读写。若进行读操作,则从头开始读;若进行写操作,则将内容添加在末尾。若文件不存在,则创建文件。打开成功后返回文件指针,位置指针指向文件头部
贴自己编的三个小文件
#include<stdio.h>
int main()
{//数字的读写
FILE *p;
int i,j;
//写
p = fopen("cfile.txt","w");//打开或新建,重新写数据
for(i=0;i<10;i++)
{
fprintf(p,"%d\n",i);
}
fclose(p);
//读
p = fopen("cfile.txt","r");
for(i=0;i<10;i++)
{
fscanf(p,"%d\n",&j);
printf("%d\n",j);
}
fclose(p);
return 0;
}
#include<stdio.h>
#include <string.h>
int main()
{//字符串的读写
FILE *p;
int i,j;
char *s = "hello world!",*ss;
//如果ss不为指针,则读取出现问题 //写
p = fopen("cfile.txt","w");//打开或新建,重新写数据
j = strlen(s);
for(i=0;i<j;i++,s++)
{
fprintf(p,"%c",*s);
}
fclose(p);
//读
p = fopen("cfile.txt","r");
fscanf(p,"%c",ss);
while(*ss != '\0')
{
printf("%c",*ss);
ss++;
fscanf(p,"%c",ss);
}
return 0;
}
#include<stdio.h>
#include <string.h>
int main()
{//字符串的读写
FILE *p;
int i,j;
char *s = "hello world!",*ss;
//写
p = fopen("cfile.txt","w");//打开或新建,重新写数据
j = strlen(s);
for(i=0;i<j;i++,s++)
{
//fprintf(p,"%c",*s);
fputc(*s,p);
}
fclose(p);
//读
p = fopen("cfile.txt","r");
*ss = fgetc(p);
//fscanf(p,"%c",ss);
while(*ss != EOF)
{
printf("%c",*ss);
ss++;
//fscanf(p,"%c",ss);
*ss = fgetc(p);
}
return 0;
}
1444

被折叠的 条评论
为什么被折叠?



