How to read input.txt?
2 次查看(过去 30 天)
显示 更早的评论
Hello!
Would you tell me how to read .txt file like below.
aaaaaa
bbbbbb
1
200
2000
4129
4189
I would like to read first two lines as string and other lines as real.
I tried to use fscanf though, it doesn't work well.
Thank you.
3 个评论
Stephen23
2021-8-24
@Yasuyuki Hamanaka: what integer do you expect the characters 'aaaaaa' to return ?
采纳的回答
Walter Roberson
2021-8-24
fid = fopen('input.txt');
textlines{1} = fgetl(fid);
textlines{2} = fgetl(fid);
numbers = cell2mat(textscan(fid, '%f'));
fclose(fid)
2 个评论
Walter Roberson
2021-8-25
For future reference:
There is also the closely related function fgets() . The difference between fgetl() and fgets() is that fgetl() strips the line terminators off, but fgets() leaves them in.
So when the purpose is to copy a file, then fgets() is better because it includes the original line terminators in -- if the original line terminator was CR+LF then the CR+LF will both be present for fgets() and will make it into any file that you write them to fgetl() would remove the CR+LF, so fgetl() is better for the case where you are analyzing the content and don't want to have to worry all the time about whether the original had CR+LF or LF alone.
更多回答(1 个)
dpb
2021-8-24
Are the string data pertinent or just in the way of returning the numeric data?
If the former, while you can make it work with low-level i/o such as fprintf, it's the hard way to go at it -- use
readcell instead.
If the latter and the text is (say) a header line and units or similar, use readtable
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!