2009-09-14 40 views
0

我在Visual C++ 2008中使用CreateFileA和ReadFile打开并将ASCII文本文件读取到内存中。这工作正常(我可以在内存中查看它的内容),但有一个例外。出于某种原因,TAB字符(0x09)正在变为NULL(0x00)。不用说,当我尝试解析文件时,这会造成严重破坏。有人知道可能是什么原因造成的,或者我可以如何解决这个问题?读取ASCII文件选项卡替换为NULL

这是我如何打开文件:

hHandle = CreateFileA(pPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 
GetFileSizeEx(hHandle, &tFileSize); 
pBuf = (UINT8 *)malloc(tFileSize.LowPart); 
ReadFile(hHandle, pBuf, tFileSize.LowPart, &dwBytesRead, NULL); 

我的项目代码具有健壮的错误处理,和我没有得到任何错误。任何建议,将不胜感激。

谢谢。

回答

1

这似乎不太可能。你有没有使用其他工具来检查磁盘上的文件,并确认标签字符在那里?

+1

其实,我想我只是找到了答案。看起来strtok_s在每个标记在字符串中移动时用NULL代替。 – 2009-09-14 20:08:35

+0

是的,那样做... – 2009-09-14 23:50:12