作者zxvc (zxvc)
看板MATLAB
标题Re: [问题] 读档时有跳行要怎麽办呢?
时间Tue Jul 4 20:21:21 2006
※ 引述《Gwaewluin (神无月 孝臣)》之铭言:
: : LIST ALL SELECTED ELEMENTS. (LIST NODES)
: : ELEM MAT TYP REL ESY NODES
: : 1 1 1 1 0 2 4 3 1 5 6 7 8
: : 2 1 1 1 0 5 10 9 6 8 12 11 7
: : 3 1 1 1 0 10 14 13 9 12 16 15 11
: : 这个是我的data的一部份
: : 我只打算读取有数字的部份
: : 但是该档第一行却是跳行
: : 一直到第六行才开始有数字
: : 请问我该怎样写才能样他从第六开始读呢?
: 找到解法了
: 用fgets( fid )来强迫换行
: 输入四次就可以使用fscanf来读档
: : 推 dok:reshape(textread('1.txt','%u','headerlines',5),13,[])' 07/04 15:17
: 由於我的档案是每二十行数字资料
: 就会接一行文字和一行跳行
: 所以没办法使用你的方法orz
: 必须使用fgets( fid )配合while来读
: 直到fgets( fid )跑出-1再跳出while
: 另外再问一个问题
: fgets和fgetl差别在哪里呢?
: 说明档是看了但是看不懂说orz
fgetl:
Read line from file, discarding newline character
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fgets:
Read line from file, keeping newline character
^^^^^^^^^^^^^^^^^^^^^^^^^
fgets与fgetl都是从档案一次读取一行,差别再於换行字元要不要被舍弃。
什麽叫读取一行?也就是读到换行字元就算一行。
换行也是一种字元(空白字元),只是你看不到它。
像你在记事本按下『Tab、Space、Enter』等,都会输入看不见的空白字元,
这些字元的主要用途是用来排版文字用的。
虽然看不见它,但不代表它们不存在。
--
《金刚经》
又念过去於五百世,作忍辱仙人,於尔所世,无我相、无人相、无众生相、无寿者相。
http://web.cc.ncu.edu.tw/~93501025/jg.doc
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.218.133
1F:推 Gwaewluin:原来是这样,难怪直接把读的显示在萤幕上时,fgets看起 07/04 20:34
2F:→ Gwaewluin:会比fgetl多很多行,原来是多了一个换行字元的关系 07/04 20:35