Reading a multi line string into a single string

I have opened a file with a string consisting of three lines. I want to read these lines from the file and store them in my "template" variable as a three line string. All I can get is the last line of the string to be stored in "template"
while feof(fid) == 0;
line = fgets(fid);
template = strvcat(line)
end
Thanks for the help

 Akzeptierte Antwort

Jan
Jan am 19 Mär. 2011

1 Stimme

template = {};
while feof(fid) == 0;
template{end + 1} = fgets(fid);
end
templateChar = char(template);
More efficient:
C = textscan(fid, '%s', 'delimiter', '\n');
templateChar = char(C{1});
EDITED: textread -> textscan (Thanks, Jiro!)

1 Kommentar

Jiro Doke
Jiro Doke am 20 Mär. 2011
@Jan, I think you meant to use "textscan", not "textread". "textread" requires the first input to be the actual file name, not the output of fopen. And "textscan" is preferred anyway.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt Tearle
Matt Tearle am 19 Mär. 2011

0 Stimmen

You can read the whole contents of a file using fileread. Then use regexp to mess with it -- eg, split on "\n"

Kategorien

Gefragt:

am 19 Mär. 2011

Community Treasure Hunt

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

Start Hunting!

Translated by