我正在 MATLAB 中开发一个从文件读取输入的函数。到目前为止(在阅读了一些有关 scanf
漏洞的内容后)我决定使用 fgets
来获取每一行,然后使用 textscan
来提取单词,其格式始终为“chars”,包括撇号。所以,我正在使用:
fid = fopen('file.txt');
tline = fgets(fid);
textscan(tline, '''%s''');
但是,我希望允许人们使用 % 字符发表评论。如何切断 textscan
以便
'word' 'anotherword' % 'comment'
不回复评论?
最佳答案
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''');
请注意,上面的内容将在行中的任何 %
之后被截断,即使它在引号中。
如果您想在引用的字符串中允许使用字符 %,则在删除该行的其余部分之前,您必须对注释 % 进行更多逻辑测试。查看可能有用的 strcmp
和 findstr
函数。
关于matlab - 在字符后截断文本扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024688/