怎样在MATLAB中用fopen打开文件

怎样在MATLAB中用fopen打开文件,第1张

一、 MATLAB的fopen函数:打开指定文件

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) && ……等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10081757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存