fopen函数打开文件,C语言fopen函数中文件打开方式(参数值)
fopen函数打开文件,C语言fopen函数中文件打开方式(参数值)详细介绍
本文目录一览: fopen函数的用法
php fopen函数用法如下:
fopen作用:打开文件或者URL。
语法:fopen(filename,mode,include_path,context)
fopen()会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个FILE类型的结构体变量中,然后将该变量的地址返回。FILE是
头文件中的一个结构体,它专门用来保存文件信息。我们不用关心FILE的具体结构,只需要知道它的用法就行。
如果希望接收fopen()的返回值,就需要定义一个FILE类型的指针。不同的操作需要不同的文件权限。例如,只想读取文件中的数据的话,“只读”权限就够了;既想读取又想写入数据的话,“读写”权限就是必须的了。
另外,文件也有不同的类型,按照数据的存储方式可以分为二进制文件和文本文件,它们的操作细节是不同的。在调用fopen()函数时,这些信息都必须提供,称为“文件打开方式”。
若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件。
【答案】:B
B。【解析】本题考查文件使用方式标识符。方式“wb”为输出打开一个二进制文件;方式“wb+”为读写建立一个新的二迸制文件;方式“rb+”为读写打开一个二进制文件;方式“rb”为输入打开一个二进制文件。
C语言fopen函数中文件打开方式(参数值)
不知道你问的是什么意思,不过r
只读打开
w
只写打开
a
追加打开
还有相应的带+操作,差不多。
fopen接受2个参数(指向文件的指针,打开方式即访问许可类型)
fp=fopen("text.txt",
a+);
就可以了,不过如果你不指定具体位置txt要存在当前文件夹里或者环境变量能找到的地方。
_putch就可以输出
r模式打开的文件一般都是ascii文件,也就是文件文件,供直接阅读的(用记事本程序打开该文件可以直接阅读),这种方式下打开文件一般用fscanf()/fgetc()等函数操作
rb模式打开的文件一般不用于直接阅读(用记事本打开后看到的可能是乱码),而是存取程序要用到的二进制数据,这种方式下打开文件一般用fread()函数进行操作
你试一下,加一句:
#include
看一下,会不会消那个错.
C语言fopen函数用于打开文件。
函数原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
参数:
path
字符串类型,表示文件所在的路径,包括文件名
mode
打开文件的模式、
返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno
中。
mode:
r
以只读方式打开文件,该文件必须存在。
r+
以可读写方式打开文件,该文件必须存在。
rb+
读写打开一个二进制文件,允许读写数据,文件必须存在。
w
打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+
打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a
以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
(原来的EOF符不保留)
wb
只写打开或新建一个二进制文件;只允许写数据。
wb+
读写打开或建立一个二进制文件,允许读和写。
ab+
读写打开一个二进制文件,允许读或在文件末追加数据。
实例:
#include
#define
F_PATH
"d:\\myfile\\file.dat"
int
main(void)
{
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp)
{
return
-1;//要返回错误代码
}
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return
0;
}
使用fopen()函数打开一个文件时,读写指针一定在文件首?对不对?
如果 钻牛角尖,因为 有不同码的文本,前面有相应的标识码,说其是什么 码的文件!
那么 读写指针一定在 文件的 额外数据(真正用户数据)开始的地方!
成功打开 读 写 文件时 指针一定在文件首。
但打开 添加 文件时,在文件 尾。
用 rewind(fp) 可以回绕到 文件 首。
成功打开读写文件时指针一定在文件首。但打开添加 文件时,在文件尾。用rewind(fp) 可以回绕到文件首。
根据实际的读写要求。如果是续写,那起始的指针位置就在文件的末尾。
通常填入“附加”;另外还可以使用“a+”来读和写更新。该文件已更新为“r+”读和写更新。将更新写入“w+”。
fopen函数在当前目录中打开一个文件,调用的一般形式是:
文件指针名称=fopen(文件名,文件模式);
“文件指针名称”必须声明为指向文件类型的指针;
“文件名”是打开文件的文件名;
“文件模式”是指文件的类型和操作要求;
“文件名”是字符串常量或字符数组。
扩展资料:
if((fp=fopen("c:\\hzk16","rb"))==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。
参考资料来源:百度百科-c语言fopen函数
怎样在MATLAB中用fopen打开文件
一、
MATLAB的fopen函数:打开指定文件
matlab中fopen函数在指定文件打开的实例如下:
“fopen”打开文件,赋予文件代号。
语法1:FID=
FOPEN(filename,permission)用指定的方式打开文件
语法2:FID
=
fopen('E:\\test1.raw',
'r');
FID=+N(N是正整数):表示文件打开成功,文件代号是N.
FID=-1
:
表示文件打开不成功。
FID在此次文件关闭前总是有效的。
如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数。
打开方式参数由以下字符串确定:
r
读出
w
写入(文件若不存在,自动创建)
a
后续写入(文件若不存在,自动创建)
r+
读出和写入(文件应已存在)
w+
重新刷新写入,(文件若不存在,自动创建)
a+
后续写入(文件若不存在,自动创建))
w
重新写入,但不自动刷新
a
后续写入,但不自动刷新
文件的存储格式:文件打开的默认方式是:二进制。以文本方式打开,可以在方式参数“permission”中加入“t”文件将,如“rt”,“wt+”
这个可能是matlab2014a的bug造成的,我也出现如下错误警告::错误使用
fprintf文件标识符无效。使用
fopen
生成有效的文件标识符。
出错
untitled
(line
8)
fprintf(fileid,'%6s
%12s\n','x','exp(x)');
c语言fopen函数打开文件
fp=fopen("c:\\第十三章\\file1.txt","r");
改成fp=fopen("c:\第十三章\file1.txt","r");试试看,
如果打开文件失败,那么fopen将放回空指针,所以你可以判断fp是否为空指针来判断打开文件是否成功
不用都加,在同一目录下能用相对路径
file
*p=fopen("a.txt","r");
用"r"打开的a.txt文件,该文件的数据只能被读进来,但是你不能对a.txt文件进行任何的修改。
而file
*p=fopen("a.txt","w");
则是写格式,这样你可以进行写操作。
以上file
*p都是文件指针。
C语言Fopen函数的用法
FILE *fp = fopen("ABC.txt","r"),“r”是读打开“w”是写打开
文件写int a=29; fprintf(fp, "%d", a)
文件读fscanf(fp, "%d", &a);
fopen函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
其中,
“文件指针名”必须是被说明为FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符串数组。
例如:
FILE *fp;
fp=("file a","r");
其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16","rb")
其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。
使用文件的方式共有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): 二进制文件
+: 读和写
2) 凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
3) 用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
4) 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。
5) 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
6) if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一键时,程序才继续执行,因此用户可利用这个等待时间阅读出错提示。敲键后执行exit(1)退出程序。
7) 把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。
8) 标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。
当使用fopen函数打开文件时,如果能正确打开文件,则返回什么类型的指针 ?
fopen返回的指针类型为FILE *