2009-12-09 75 views
-1

即時從文件行逐行閱讀,但是當我讀取一些垃圾字符像空間/ r正在添加im nt獲取爲什麼它被添加雖然沒有這樣的字符在文件從哪裏im閱讀..我已經使用fread和fgets都來自兩個即時通訊得到同樣的問題,請回復,如果你有解決這個問題如何解決這個文件相關的問題

+2

請發佈樣本以顯示問題。 – AraK 2009-12-09 10:10:47

+0

來自該文件的幾行... – 2009-12-09 10:11:51

+0

雖然你在它,但也發佈你正在使用的代碼,否則它聞起來很像做功課。 – jhwist 2009-12-09 10:12:32

回答

1

該文件可能是編輯/創建在Windows上。 Windows使用\r\n作爲行分隔符。讀取文件時,必須手動去除\r。由於大多數編輯將\r\n視爲單個字符(行結束),因此您無法「看到」它,但它仍在文件中。如果您想查看它或使用od之類的工具,請使用十六進制編輯器。

0

以文本模式打開文件。

/* ... */ 
fopen(filename, "r"); /* notice no 'b' in mode */ 
/* ... */ 

假如你使用的是Windows ...閱讀操作,庫負責翻譯文字爲「\ r \ n」出現在磁盤成「\ n」;並在寫入操作時,庫將「\ n」翻譯爲「\ r \ n」。