使用C語言,我試圖操作由openssl生成的一些文件,其中包含許多(非常)特殊字符。但文件的結尾似乎過早地被檢測到。 例如看到我的程序的提取物,那是應該的文件複製到另一個:在c中使用特殊字符讀取和寫入文件
(爲簡便起見,我不顯示文件的開放的考驗,但我這樣做,我的程序)
char msgcrypt[FFILE];
FILE* fMsg = fopen(f4Path,"r");
while(fgets(tmp,FFILE,fMsg) != NULL) strcat(msgcrypt,tmp);
fclose(fMsg);
FILE* fMsg2 = fopen(f5Path,"w");
fprintf(fMsg2,"%s",msgcrypt);
fclose(fMsg2);
這裏是位於f4Path文件的內容:
Salted__X¢~xÁïÈú™xe^„fl¯�˜<åD
現在位於f5Path文件的內容:
Salted__X¢~xÁïÈú™xe^„fl¯
請注意,缺少4個字符。
有人有想法嗎?
考慮使用fopen(f4path,「rb」)和fread()讀取非可打印字符,否則稱爲二進制字符。 – Jack 2012-01-04 21:10:37