[問題] fopen()&fread()內容被截斷..
大家晚安,
我想請問一下fopen_s()及fread()的用法...
因為我想要將某個檔案讀進buffer,之後在分析buffer內的資料..
但是,奇怪的是,讀進去的檔案竟然只有四分之三...
後來,我將buffer內的資料在寫成一個檔案後才發現這個問題..
之後,我用Ultraedit開啟原始檔案及產生的檔案相比較下..
圖片左邊是原始檔案,右邊是從buffer讀出來寫的檔案
http://ppt.cc/HibO (Ultraedit比較圖)
http://www.mediafire.com/?kkd6wavnicb4gae (原始檔案)
http://www.mediafire.com/?8trfmioiw9k78qo (將buffer寫成檔案)
int file_size = 0;
string m_Path ="C:\\ProTmp\\QFN64 230551-CU-A";
WIN32_FIND_DATAA file_data;//取得File檔案資訊
HANDLE handle;
handle = ::FindFirstFileA(m_Path.c_str(), &file_data);
if( handle != INVALID_HANDLE_VALUE )
{
::FindClose(handle);
if ( !(file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )
{
file_size = file_data.nFileSizeLow;////取得File檔案大小
}
}
FILE* fp;
char* buffer = new char[file_size+10];
fopen_s(&fp, m_Path.c_str(), "r "); //Open File
fread(buffer, 1, file_size, fp);//read File into buffer
buffer[file_size] = '\0';
FILE* fw=fopen("C:\\Temp\\Test","wb");//寫成另一個檔案
fwrite(buffer, sizeof(buffer[0]), file_size, fw);
請問一下,是我在用法上哪裡有寫錯嗎???
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.28.75
→
10/19 23:57, , 1F
10/19 23:57, 1F
→
10/20 00:21, , 2F
10/20 00:21, 2F
推
10/20 00:27, , 3F
10/20 00:27, 3F
→
10/20 00:28, , 4F
10/20 00:28, 4F
→
10/20 00:33, , 5F
10/20 00:33, 5F
→
10/20 00:35, , 6F
10/20 00:35, 6F
推
10/20 00:48, , 7F
10/20 00:48, 7F
→
10/20 00:48, , 8F
10/20 00:48, 8F
→
10/20 00:49, , 9F
10/20 00:49, 9F
→
10/20 00:49, , 10F
10/20 00:49, 10F
→
10/20 00:50, , 11F
10/20 00:50, 11F
→
10/20 00:51, , 12F
10/20 00:51, 12F
→
10/20 00:51, , 13F
10/20 00:51, 13F
→
10/20 00:53, , 14F
10/20 00:53, 14F
→
10/20 00:53, , 15F
10/20 00:53, 15F
→
10/20 00:57, , 16F
10/20 00:57, 16F
→
10/20 00:59, , 17F
10/20 00:59, 17F
→
10/20 01:00, , 18F
10/20 01:00, 18F
推
10/20 01:09, , 19F
10/20 01:09, 19F
→
10/20 08:37, , 20F
10/20 08:37, 20F
→
10/20 08:38, , 21F
10/20 08:38, 21F
→
10/20 16:24, , 22F
10/20 16:24, 22F
→
10/20 16:25, , 23F
10/20 16:25, 23F
→
10/20 16:26, , 24F
10/20 16:26, 24F
→
10/20 16:32, , 25F
10/20 16:32, 25F
→
10/20 16:33, , 26F
10/20 16:33, 26F
→
10/20 23:02, , 27F
10/20 23:02, 27F
→
10/20 23:04, , 28F
10/20 23:04, 28F
→
10/20 23:05, , 29F
10/20 23:05, 29F
→
10/21 01:30, , 30F
10/21 01:30, 30F
→
10/21 01:31, , 31F
10/21 01:31, 31F