我对在C++中使用std::ifstream
有一些问题。
大部分问题都是一般性问题,我找不到答案,所以可能对其他人也有用。
无论如何,我使用#include <fstream>
并创建了一个变量char line[20]
。
有一个文本文件,其中有几行模式为jxxx
(其中x
表示数字),例如:
j1234 j5678 j1111 (等等)
那么,我这样做:
#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();
所以问题在于:
为什么在
getline
方法中需要数字?line
是否自动在末尾添加\0
?因为当我们创建像char text[5]; text = "abc1"
这样的变量时,它实际上被保存为"acd1\0"
,并且文件中每个jxxx
行后面的换行符(\n
)会发生什么?(我想在比这更复杂的代码中使用这些行,所以想知道)程序是否会自动跳到下一行?如果不是,我该如何告诉它去下一行?