通过ReadFile()函数读取文件时检查文件结尾

时间:2012-10-25 10:18:47

标签: c++ c winapi

如何在下一个代码中检查文件结尾。我尝试编写可以逐个读取wchar_t符号的函数,而某些函数可以读取早期符号,但是如果读取了EOF,则函数必须停止。

wchar_t wchr[1];    
BOOL b = TRUE;

do
{
    b = ReadFile(hReadFile, wchr, sizeof(wchar_t), &dw, NULL);
    if(!b)break;         //it doesn't work
    tempGetLine[size] = wchr[0];
    size++;
}while(wchr[0] != endSymbol);

1 个答案:

答案 0 :(得分:1)

检查ReadFile是否在文件末尾的方法是检查已读取的字节数与请求的数量。那就是:

if(!b)break;

应为:

if(dw != sizeof(wchar_t)) break;