matlab fgetl读一行,转:matlab中的fgetl、fgets、fread这些读txt中的一行

  • Post author:
  • Post category:其他


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 1×7 14 char array

Grand total is 7 elements using 14 bytes

>> whos a

Name Size Bytes Class

a 1×9 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

1052

32

53

32

54

13

1050

32

53

32

54

32

56

13

1050

54

53

13

1051

可以看到,利用fread对入的是二进制ASCII码,ASCII码10

和13 对应的是换行符和回车符。这就是fgets()为什么比fgetl()多两个字符的原因,在每个换行的时候都会有换行符和回车符。

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