matlab - 在字符后截断文本扫描

标签 matlab file-io comments textscan

我正在 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''');

请注意,上面的内容将在行中的任何 % 之后被截断,即使它在引号中。

如果您想在引用的字符串中允许使用字符 %,则在删除该行的其余部分之前,您必须对注释 % 进行更多逻辑测试。查看可能有用的 strcmpfindstr 函数。

关于matlab - 在字符后截断文本扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024688/

相关文章:

matlab - 如何在 MATLAB 中实现本福德定律

arrays - 是否可以在不循环的情况下对 Matlab 中的结构子字段数组进行平均?

c++ - C++从文件中读取格式化数据

c# - 设置 Windows 文件安全性

matlab - 常量和 Matlab 编码器

python - Mlabwrap 多处理

sql - 如何使用 T-SQL 在 SQL Server 中输出非结构化文件?

xcode - 无法评论选择

c# - 如何从 C# XML 注释中引用构造函数?

python - 使用 praw 解析评论时遇到问题