#include<Windows.h>
#include<tchar.h>
#include<stdio.h>
void ReportError(LPCTSTR userMessage, DWORD exitCode, BOOL printErrorMessage) {
DWORD eMsgLen, errNum = GetLastError();
LPTSTR lpvSysMsg;
_ftprintf(stderr, _T("%s\n"), userMessage);
if (printErrorMessage) {
eMsgLen = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM, NULL, errNum, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpvSysMsg, 0, NULL);
if (eMsgLen > 0) {
_ftprintf(stderr, _T("%s\n"), lpvSysMsg);
}
else {
_ftprintf(stderr, _T("Last Error Number;%d.\n"), errNum);
}
if (lpvSysMsg != NULL)LocalFree(lpvSysMsg);
}
if (exitCode > 0)ExitProcess(exitCode);
return;
}
int _tmain(int argc, LPCTSTR argv[]) {
HANDLE file = CreateFile(_T("test.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS,FILE_FLAG_SEQUENTIAL_SCAN, NULL);
TCHAR buffer[1024];
memset(buffer, 0, sizeof buffer);
LARGE_INTEGER fileSize;
if(GetFileSizeEx(file, &fileSize)==false)ReportError(_T(""), 0, true);
DWORD readBytes;
LARGE_INTEGER readPos;
readPos.QuadPart = 0;
while (readPos.QuadPart < fileSize.QuadPart) {
bool flag = ReadFile(file, buffer, 8, &readBytes, NULL);
if (flag == false)ReportError(_T(""), 0, true);
_tprintf(_T("%s"), buffer);
LARGE_INTEGER distanceToMove;
distanceToMove.QuadPart = 0;
readPos.QuadPart = 0;
if (SetFilePointerEx(file, distanceToMove, &readPos, FILE_CURRENT)==false)ReportError(_T(""), 0, true);
memset(buffer, 0, sizeof buffer);
}
_tprintf(_T("\n%lld"), readPos.QuadPart);
CloseHandle(file);
}
读取txt文件内容
最新推荐文章于 2024-07-20 18:10:49 发布