当读取源文件并将各个字符存储到缓冲区中时,.get()
方法在C++文件到达文件末尾时是否返回NULL
,并且看到没有更多字符需要读取?这种情况下的.get()
方法来自iostream
库。C++中的.get()是否为文件读取返回null?
#include <iostream>
#include <fstream>
#include <list>
...
char c = source_file.get();
while(bufferList.size() < MAX_BUFFER_SIZE)
{
if (c != NULL)
{
... // Add chars to buffer.
}
else // c is Null
{
bufferList.push_back('$');
}
// Get the next char from the file
c = source_file.get();
}
我在哪里使用$
来表示EOF标记。
而不是说if (c != NULL)
我可以只说if(c)
?这是否意味着同样的事情,如果c
是NULL
,if(c)
将评价为false?
'c'不是指针。在这种情况下,它将默认为'int' –
我将如何去测试source_file是否已经到达最后? – user3869795
你可以调用'fstat',然后查看'st_size'的值,然后读取那么多字节。 –