how can I count/read an Enter as one character?

2 ビュー (過去 30 日間)
Jaybee
Jaybee 2014 年 3 月 9 日
コメント済み: Image Analyst 2014 年 3 月 10 日
so here's the problem, i have a text file named sampletext.txt containing:
Hello Word
1 2 3 4 5 6
,I used the code
fid = fopen('sampletext.txt');
A = char(fread(fid,inf)).';
L = length(A)
the expected output is 22 but is outputs 23, it counts enter as 2 character. please help. :)
thankyou!

採用された回答

Jan
Jan 2014 年 3 月 9 日
The character you call "enter" can be char([13, 10]) for DOS formatted ASCII text. Then counting this as 2 characters is correct. Why do you think this is wrong?
But could open the file under Windows in text-mode:
fid = fopen('sampletext.txt', 'rt');
Then the line reak is converted to a char(10) implicitely. But this has the disadvantage, that is does not apply the same conversion under Linux. Writig platform dependent code is a bad programming practize, so I'd rely on counting two bytes as two characters.

その他の回答 (1 件)

Image Analyst
Image Analyst 2014 年 3 月 9 日
Why not simply use fgetl() if you want to read line by line?
  2 件のコメント
Jan
Jan 2014 年 3 月 9 日
@Image Analyst: Jaybee did not say, that the file should be read line by line.
Image Analyst
Image Analyst 2014 年 3 月 10 日
No but I just offered as a possibility in case he wants to and to not have to worry about 10s and 13s.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLow-Level File I/O についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by