Win32 文件的读写操作

https://www.cctry.com/thread-298355-1-1.html

文件的写操作:WriteFile:
函数的声明如下:
BOOL WriteFile(
  HANDLE       hFile,
  LPCVOID      lpBuffer,
  DWORD        nNumberOfBytesToWrite,
  LPDWORD      lpNumberOfBytesWritten,
  LPOVERLAPPED lpOverlapped
);
函数详情见:https://www.cctry.com/thread-298326-1-1.html

实战:
接下来给大家讲解下如何向文件中写入如下类型的数据:
①、写入数字;
②、写入英文字母;
③、写入包含中文的字符串;
④、写入二进制数据。


文件的读操作:ReadFile:
函数的声明如下:
BOOL ReadFile(
    HANDLE hFile,
    LPVOID lpBuffer,
    DWORD nNumberOfBytesToRead,
    LPDWORD lpNumberOfBytesRead,
    LPOVERLAPPED lpOverlapped
);
函数详情见:https://www.cctry.com/thread-298333-1-1.html

实战:
①、读入数字;
②、读入英文字母;
③、读入包含中文的字符串;
④、读入二进制数据


作业:
文本文件的内容为:23+3=
要求:读入文本文件中的表达式,并计算表达式的值,写入到文本文件中,让文本文件的内容为:23+3=26
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    HANDLE hFile = CreateFile(_T("D:\\VC驿站ok.txt"), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hFile == INVALID_HANDLE_VALUE)
    {
        MessageBox(NULL, _T("文件打开失败!"), _T("Tip"), MB_OK);
        return -1;
    }
    DWORD dwWrited = 0;
    wchar_t szbuf[] = _T("我是VC驿站的粉丝!");
    static const BYTE unicodeHead[] = { 0xFF, 0xFE }; //unicode文件头文件  
    WriteFile(hFile, unicodeHead, sizeof(unicodeHead), &dwWrited, NULL);
    BOOL bWriteOK = WriteFile(hFile, szbuf, sizeof(szbuf), &dwWrited, NULL);
    CloseHandle(hFile);
    return 0;
}

 

上一篇:GetFileSize的用法(含格式化字符串的用法)


下一篇:64位内核开发第8讲,文件操作.以及删除文件.