我在Visual C ++ 2008中使用CreateFileA和ReadFile打开并将ASCII文本文件读入内存。这工作正常(我可以在内存中查看其内容),但有一个例外。由于某种原因,TAB字符(0x09)被更改为NULL(0x00)。不用说,当我尝试解析文件时,这会造成严重破坏。有人知道可能导致这种情况的原因,或者我如何解决这个问题?

这就是我打开文件的方式:

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 );

我的项目代码具有强大的错误处理功能,而且我没有收到任何错误。任何建议将不胜感激。

感谢。

有帮助吗?

解决方案

这似乎不太可能。您是否使用了其他工具来检查磁盘上的文件,并验证是否存在制表符?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top