我有一些关于在C++中使用std::ifstream
的问题。使用ifstream来读取文件的C++
大部分是一般性问题,我无法找到答案,所以也可能对其他人有用。
无论如何,我使用#include <fstream>
并作出变量char line[20]
。
有具有图案jxxx
(其中x
s为数字)的几行的文本文件,如:
j1234 j5678 j1111 (and so on)
所以,我这样做:
#include <iostream>
#include <fstream>
char line[20]
ifstream rfile;
rfile.open("path-to-txt-file");
while (!rfile.eof()) {
rfile.getline(line, 20); (why is 20 needed here?)
cout >> data >> endl;
}
rfile.close();
所以关注的是:
为什么在需要的数字方法?
确实
line
有没有\0
最后自动?因为当我们创建char
变量像char text[5]; text = "abc1"
这样的变量时,它实际上被保存为"acd1\0"
,并且在每个jxxx
行之后的文件末尾(\n
)会发生什么? (我想用比这更复杂的代码行,所以想知道)程序会自动移动到下一行吗?如果不是,我该如何告诉它去下一行?
'这里为什么需要20个?',因为不是使用C++字符串(std :: string),而是使用c字符串。 – drescherjm
'while(!rfile.eof()){'https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong – drescherjm