How to read input.txt?
    3 次查看(过去 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 中查找有关 Text Data Preparation 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




