在Windows環境下,用fwrite向文件中寫數據時,當寫入0x0A時,其前面總會被加上一個0x0D。後來發現出現這個問題的原因是fwrite 在以文本方式寫文件時,碰到0x0A,會自動在前面加上0x0D,以夠成回車換行符,因爲Windows平臺的換行符默認是:0x0D 0x0A。解決辦法是以二進制方式打開文件,然後進行寫文件。
分析問題代碼:
fopen( "openfile", "a+" );
修改爲:
fopen( "openfile", "a+b" );
在Windows環境下,用fwrite向文件中寫數據時,當寫入0x0A時,其前面總會被加上一個0x0D。後來發現出現這個問題的原因是fwrite 在以文本方式寫文件時,碰到0x0A,會自動在前面加上0x0D,以夠成回車換行符,因爲Windows平臺的換行符默認是:0x0D 0x0A。解決辦法是以二進制方式打開文件,然後進行寫文件。
分析問題代碼:
fopen( "openfile", "a+" );
修改爲:
fopen( "openfile", "a+b" );