matlab中fgetl、fgets、fread函数
tline = fgets(fileID)
从⽂件中读取⾏,保留换⾏符 (换⾏符和回车符)
从⽂件中读取⾏,保留换⾏符读取指定的⽂件的下⼀⾏,包括换⾏符。 fileid是⼀个整数⽂件标识符从获得。 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
fopen函数失败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-⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。