首页 > 解决方案 > C++ 覆盖句柄的内容

问题描述

我正在尝试从 HANDLE 文件中获取一个数字,将其存储在一个 int 中,并可能将其替换在同一个文件中。我的代码现在看起来像这样

HANDLE numFile = INVALID_HANDLE_VALUE;  //Just in case file not found
numFile = CreateFile("numFile.txt", 
                     GENERIC_READ | GENERIC_WRITE, 
                     FILE_SHARE_READ, 
                     NULL, 
                     OPEN_EXISTING, 
                     FILE_ATTRIBUTE_NORMAL, 
                     NULL);
ReadFile(numFile, input, sizeof(char), &bytesRead, NULL);
int myNumber = input[0];

我知道 API 中存在 WriteFile 方法,但看起来它会附加文件而不是覆盖内容。我曾简要地考虑过每次删除和重新创建文件,但这对于这个问题来说似乎不必要地复杂。有什么想法吗?

标签: c++filewinapi

解决方案


使用函数SetFilePointerWriteFile于返回开始

SetFilePointer(numFile, 0, NULL, FILE_BEGIN);

推荐阅读