说我正在读文件。
ifstream f("file.txt");
while (f.good())
{
char c = is.get();
}
VS
ifstream f("file.txt");
string line;
while(f.good())
{
getline(f, line);
}
理论上它是否会有所不同,因为文件句柄在整个文件读取期间保持打开状态?
答案 0 :(得分:1)
取决于
如果您的流未缓存,则两个版本之间可能存在明显差异。如果由于某种原因您没有打开文件而是非常快的内存流,则对get
的多次调用可能会变慢。当然,这也取决于getline
的实施方式。
因此存在理论上的差异。当然,要查看是否存在实际差异,您应该尝试一下。你有可能没有发现任何差异。