當讀取源文件並將各個字符存儲到緩衝區中時,.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'的值,然後讀取那麼多字節。 –