• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab中fgetl、fgets、fread函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

tline = fgets(fileID)

从文件中读取行,保留换行符 (换行符和回车符)

 
从文件中读取行,保留换行符 读取指定的文件的下一行,包括换行符。 fileid是一个整数文件标识符从fopen获得。 tline是一个文本字符串,除非该行只包含结束的文件标记。在这种情况下,tline是数字值-1。与fgets读取字符的编码方案使用与该文件相关联。要指定的编码方案,使用fopen。

tline=fgetl(fid)
从文件中读取行,删除文件换行符

返回由文件标识符fid指示的文件的下一行。如果fgetl遇到文件结束指示符,则返回-1。对于fid的完整描述请参考fopen函数。fgetl函数常用于含有文件换行符的文件。 

例如:mm.txt文件内容

1 2 2 3
4 5 6
2 5 6 8
265
3

利用 fgetl()读入时结果:

c=fgetl(fid)

c =

1 2 2 3

利用fgets()读入结果

>> a=fgets(fid)

a =

1 2 2 3

>> whos c
  Name      Size                    Bytes  Class

  c         1x7                        14  char array

Grand total is 7 elements using 14 bytes

>> whos a
  Name      Size                    Bytes  Class

  a         1x9                        18  char array

Grand total is 9 elements using 18 bytes

当利用fread()读入时,便可以清楚的理解利用fgets()多出来的两个字符。

e=fread(fid)

e =

    49
    32
    50
    32
    50
    32
    51
    13
    10
    52
    32
    53
    32
    54
    13
    10
    50
    32
    53
    32
    54
    32
    56
    13
    10
    50
    54
    53
    13
    10
    51

可以看到,利用fread读入的是二进制ASCII码,ASCII码10 和13 对应的是换行符和回车符。这就是fgets()为什么比fgetl()多两个字符的原因,在每个换行的时候都会有换行符和回车符。

当利用UltrEdit打开mm.txt文件转换二进制格式就可以看到

 

 

都是从文本文件里面读一行的内容,差别在于,前者返回的结果中包含换行符而后者忽略换行符。另外还有一点,fgets 调用时可以附加一个参数,指定一次最多读多少个字符(在行很长的时候避免消耗资源太大)。

事实上,如果你细心点看看,会发现其实 fgetl 是通过调用 fgets 实现的——换言之,fgets是内建(built-in)函数,而fgetl是可以看到源代码的m-文件。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB中reshape的用法发布时间:2022-07-18
下一篇:
学习笔记(1)---matlab中常见函数解析发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap