matlab中fopen函数在指定文件打开的实例如下:
“fopen”打开文件,赋予文件代号。
语法1:FID= FOPEN(filename,permission)用指定的方式打开文件
语法2:FID = fopen('E:\\test1raw', 'r');
FID=+N(N是正整数):表示文件打开成功,文件代号是N
FID=-1 : 表示文件打开不成功。
FID在此次文件关闭前总是有效的。
如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数。
打开方式参数由以下字符串确定:
r 读出
w 写入(文件若不存在,自动创建)
a 后续写入(文件若不存在,自动创建)
r+ 读出和写入(文件应已存在)
w+ 重新刷新写入,(文件若不存在,自动创建)
a+ 后续写入(文件若不存在,自动创建))
w 重新写入,但不自动刷新
a 后续写入,但不自动刷新
文件的存储格式:文件打开的默认方式是:二进制。以文本方式打开,可以在方式参数“permission”中加入“t”文件将,如“rt”,“wt+”
open 是系统调用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。
fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api
linux中的系统函数是open,fopen是其封装函数
open和fopen的区别:
1、open属于低级IO,fopen是高级IO。
2、open返回一个文件描述符,fopen返回一个文件指针。
3、open无缓冲,fopen有缓冲。
4、open与 read, write 等配合使用, fopen与 fread, fwrite等配合使用。
5、fopen是在open的基础上扩充而来的,在大多数情况下,用fopen。
首先要理解这个函数到底是做什么的
int copy(char infile,char outfile)
功能:将文件infile的内容拷贝到文件outfile中
参数:
infile - 输入文件名(包括路径)
outfile - 输出文件名(包括路径)
输出:
拷贝成功或失败
if(strcmp(infile,outfile)!=0 && ((input=fopen(infile,"rb"))!=NULL) && ((output=fopen(outfile,"wb"))!=NULL)) // strcmp比较输入输出文件名,不一样时才进行fopen 分别打开输入输出文件,得到对应的文件句柄input/output(fopen返回为NULL则打开失败)
{
while(!feof(input)) //文件如果没有到结尾,则重复进行 fread 从输入文件中读取1个字节的数据到 temp,再将temp 通过fwrite 写入输出文件中。
{
fread(&temp,1,1,input);
fwrite(&temp,1,1,output);
}
返回0表示拷贝成功,返回1标识拷贝失败,分别在两个分支中,不会同时执行到。
fopen() 对应的 是 FEOF(nFileHandle),不能用 eof() 。
我做了一下测试,当文件打开 不成功的时候或打开成功但已关闭,feof() 就总是返回 t
估计你是 这个情况。
请在打开文件后查看 nFileHandle 的值,如果它为-1 则打开不成功。
以上就是关于怎样在MATLAB中用fopen打开文件全部的内容,包括:怎样在MATLAB中用fopen打开文件、linux 中 open和fopen的区别、C语言,if(strcmp(infile,outfile)!=0 && ((input=fopen(infile,"rb"))!=NULL) && ……等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)