keep fscanf past wrong format value

10 visualizzazioni (ultimi 30 giorni)
Hello, im having this problem with feof function and fscanf. I want to read all the whole numbers but it stops when it reaches something that is not. How can I make it ignore that and keep scanning?
fid = fopen("testdata.txt","r");
a = [];
i = 0;
while ~feof(fid)
i = i + 1;
a(i) = fscanf(fid, '%d', 1);
end
Unable to perform assignment because the left and right sides have a different number of elements.
fclose(fid);
  1 Commento
Rik
Rik il 15 Mag 2023
Wouldn't you be better off reading the entire file and then matching each line with a regular expression?

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 15 Mag 2023
Unless you have integers that might have value outside of +/- 2^53 then there is little point using a %d format. Use a %f format instead: that will accept floating point numbers without any reading problems. You can always check that everything is integer afterwards.

Più risposte (0)

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by