c++ ReadFile
时间: 2023-07-04 15:27:51 浏览: 180
c++ReadFile.docx
在 C++ 中,可以使用 Windows API 中的 ReadFile 函数来读取文件。
该函数的原型如下:
```
BOOL ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);
```
其中,参数含义如下:
- hFile:文件句柄。
- lpBuffer:指向读取数据的缓冲区。
- nNumberOfBytesToRead:欲读取的字节数。
- lpNumberOfBytesRead:实际读取的字节数。
- lpOverlapped:指向 OVERLAPPED 结构体的指针,用于异步 I/O 操作。
示例代码如下:
```c++
#include <Windows.h>
#include <iostream>
int main()
{
HANDLE hFile = CreateFile(
"filename.txt",
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hFile == INVALID_HANDLE_VALUE)
{
std::cerr << "Failed to open file!" << std::endl;
return -1;
}
char buffer[1024];
DWORD bytesRead;
if (ReadFile(hFile, buffer, sizeof(buffer), &bytesRead, NULL))
{
std::cout << "Read " << bytesRead << " bytes successfully!" << std::endl;
}
else
{
std::cerr << "Failed to read file!" << std::endl;
}
CloseHandle(hFile);
return 0;
}
```
在这个例子中,我们打开了一个名为 filename.txt 的文件,并读取了其中的数据。如果读取成功,我们将输出读取的字节数;否则,我们将输出错误信息。注意,最后要关闭文件句柄。
阅读全文