2

ファイルから入力を読み取る MATLAB の関数に取り組んでいます。scanfこれまでのところ(ここで脆弱性について少し読んだ後) fgets、各行を取得textscanし、単語を抽出するために使用することにしました。これは常に、アポストロフィを含む「chars」形式になります。だから、私は使用しています:

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

ただし、% 文字を使用して、人々がコメントできるようにしたいと考えています。そのようにどのように切り捨てますtextscan

'word' 'anotherword' % 'comment'

コメントを返しませんか?

4

2 に答える 2

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

于 2012-06-13T23:58:47.813 に答える
0

デバッグ中にもう少し読んだ後、私はこれを行うためのより簡単な方法を見つけました。

textscan(tline, '''%s''', 'commentStyle', '%');
于 2012-06-15T15:46:34.797 に答える