2014-04-27 44 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等)来播放不同的行尾。