我想這個標題可以說明一切。如何在C中正確識別不同的行結束符?
我在Windows 7上編寫了一個C程序,使用g ++和Notepad ++來比較文件的內容。該文件的
內容:
simple
file with lines
的文件已在windows風格CRLF行結束。
我數的時候使用這個代碼的文件長度:
fseek(file, 0, SEEK_END);
size = ftell(file);
fseek(file, 0, SEEK_SET);
我得到。
當我將行結束符更改爲Unix格式LF(使用Notepad ++)時,我得到長度。
這比較兩個文件時會產生一種問題。這就是爲什麼我問,如果有方法來確定給定的文件是否有LF或CR或CRLF。
我知道我可以區分CR和LF,LF的ASCII代碼是10,CR的代碼是13,或者LF是'\ n',CR是'\ r'。
但是,當讀取char後面的文件字符時,我總是會得到LF(ascii 10),即使存在CRLF也是如此。
我希望我說清楚。謝謝。
然後只需讀取文件並計算字符而不使用'ftell'。 'ftell'返回文件中的字節數,這只是你*不*想*的東西;你想要*字符數*。 – Bakuriu