我正在使用MATLAB中的一个函数来读取文件中的输入。到目前为止(在此处阅读了scanf
个漏洞之后),我决定使用fgets
获取每一行,然后textscan
提取单词,这些单词将始终采用格式' chars'包括撇号。所以,我正在使用:
fid = fopen('file.txt');
tline = fgets(fid);
textscan(tline, '''%s''');
但是,我希望允许人们使用%字符进行评论。如何切断textscan
以便
'word' 'anotherword' % 'comment'
不会回复评论?
答案 0 :(得分: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之前,你必须在测试注释%时做更多的逻辑。查看可能有用的strcmp
和findstr
函数。
答案 1 :(得分:0)
在调试之后再做一些阅读之后,我找到了一种更简单的方法来做到这一点。
textscan(tline, '''%s''', 'commentStyle', '%');