gpt4 book ai didi

c++ - 将文本文件读入 Safearray

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:42 26 4
gpt4 key购买 nike

我需要读取文本文件并将数据存储到 Safearray。

我用这个函数试了一下:

bool Parse::LoadTxtFileIntoSafearray(string* strPath, SAFEARRAY** pByteArray)
{
bool bReturn = false;

string line;
int iOffset = 0;
char* pcBuffer = NULL;

std::ifstream infile ( strPath->data() );
if ( !infile.fail() )
{
infile.seekg(0, std::ios::end);
int iSize = infile.tellg();
infile.seekg(0);
pcBuffer = (char*)calloc(iSize,sizeof(char));
if(pcBuffer)
{
infile.read(pcBuffer, iSize);
iSize = strlen(pcBuffer);
SAFEARRAYBOUND sb;
sb.cElements = iSize;
sb.lLbound = 0;
*pByteArray = SafeArrayCreate(VT_UI1,1,&sb);

BYTE* pData;
SafeArrayAccessData(*pByteArray,(void **)&pData);
memcpy(pData, pcBuffer,iSize);
SafeArrayUnaccessData(*pByteArray);
delete pcBuffer;
pcBuffer = NULL;
bReturn = true;
}
}
return bReturn;
}

问题是文件的大小大于读取的字节...

怎么了?

问候 Camel 领主

最佳答案

man-page 中所述, read 尝试读取最多 count 个字节。为确保读取所有字节,您必须循环。

作为旁注:您并不总是保证使用静态文件,因此假设文件大小不会改变可能会给您带来麻烦(缓冲区溢出,不读取完整文件,无休止循环)。

关于c++ - 将文本文件读入 Safearray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com