2014-04-27 83 views
-1

我想讀的文本文件閱讀文本input.txt中其中包含:如何從一個文件逐行

約翰·史密斯

123條街

達拉斯

德克薩斯州

2 0.79 13.20 6.50

,但是當我嘗試使用函數getline(讀的第一行),整個文件被複制到字符串名稱,而不是第一線。這裏是我的代碼:

string name; 
ifstream fin("input.txt", ios::in); 
getline(fin, name); 

所有我想要包含的名稱是「John Smith」。有什麼建議?

+0

這當然是'file'和'io'。如果您使用您使用的環境和語言標記問題,這將有所幫助。 –

+0

可能該文件源於Unix,並且對於行結束符只有LF,而您的程序在Windows上並且搜索CRLF。 –

回答

2

你的代碼是正確的。這足以讓你得到字符串「約翰·史密斯」 嘗試學習更多一點關於「回車」「行尾」http://en.wikipedia.org/wiki/Newline

回車是在不同平臺上的不同。

例如:

<CR> = 0x0D = '\r' 
<LF> = 0x0A = '\n' 

的Windows使用字節<CR>+<LF>來識別一個換行......而UNIX系統使用以前只有<CR><LF> ... 的Mac系統,以確定新行(有時也稱爲「經典Mac」)......但是現在他們轉換爲<LF>就像UNIX標準一樣。

所以,你的問題可能是你有不同的行結束標準。嘗試使用更好的文本編輯器(Notepad ++,Sublime,TextWrangler等)來播放不同的行尾。