有人可以向我解释一下你读文件时到底发生了什么?

时间:2015-12-29 01:32:59

标签: c++ c++11

当您使用条件为!fin.eof()的while循环时,它是如何工作的?如果我的循环包含像fin.get(ch)这样的语句,其中ch的类型为char?

,该怎么办?
  • 指针移动的确切程度以及何时更新?
  • 如果在文件的开头,指针指向第一个元素。它是否会转移到第一次迭代中的第二个元素?

1 个答案:

答案 0 :(得分:0)

fin.eof()将指针递增到输入缓冲区中的下一个字符。这可能包括换行符或其他隐藏字符,这些字符是您所期望的。 "它从当前流位置读取字符,包括第一个换行符,到流的末尾,或直到读取的字符数等于n - 1 [对于fgets],以先到者为准。 #34; (来自http://www.cplusplus.com/forum/beginner/37005/

我发现了

while (getline(fin,sent))

通常效果更好 (见http://mathbits.com/MathBits/CompSci/Files/End.htm