2012-06-13 43 views
2

我正在研究一個從MATLAB讀取文件輸入的函數。到目前爲止(在閱讀了這裏關於scanf漏洞之後),我決定使用fgets來獲取每一行,然後使用textscan來提取單詞,這些單詞總是包含撇號在內的格式'chars'。所以,我正在使用:在一個字符後切斷文本掃描

fid = fopen('file.txt'); 
tline = fgets(fid); 
textscan(tline, '''%s'''); 

但是,我想讓人們有評論,使用%字符。如何切斷textscan使

'word' 'anotherword' % 'comment' 

不返回對此有何評論?

+0

什麼人?你應該嘗試澄清,因爲不知道上下文是否令人困惑。 –

+0

@WebfootWitchHat製作我正在閱讀的文本文件的人員。 –

回答

2
fid = fopen('file.txt'); 
tline = fgets(fid); 
pct = find(tline=='%'); 
tline(pct(1)-1:end)=[]; % deletes tline from first instance of '%' onward. 
textscan(tline, '''%s'''); 

注意上面將任何%後切斷所有的行,即使是在引號。

如果你想允許你的引用字符串中的字符%,你必須在刪除其餘的tline之前做更多的測試註釋%的邏輯。看看可能有用的strcmpfindstr函數。

+0

這工作。謝謝! –

0

在調試時做了更多的閱讀後,我發現了一個更直接的方法來做到這一點。

textscan(tline, '''%s''', 'commentStyle', '%');