2009-09-14 39 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