[問題]要如何正確的使用fread,fwite?
遇到的問題:
希望得到的正確結果:
我有一張影像的檔案是500*1000(*.raw)的矩陣,我想要讀出正確的值(0~255),
所以我想用fread,fwrite把(.raw)檔的數字讀出來,改寫近(B.txt)來確認自己寫
的程式可以正確的讀檔。
可是我寫的程式碼,在執行到fread就會無法執行跳掉。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *stream; /*以FILE 結構體宣告一個指位器變數*/
FILE *fp;
char filename[15]; /*宣告檔案名稱*/
unsigned char image_matrix1[500][1000];
printf("請輸入欲開啟的檔案名稱:");
scanf( "%s", filename) ; /* 輸入檔案名稱*/
fp=fopen("B.txt","w");
stream=fopen(filename,"rb");
if(stream==NULL)
{ printf("檔案開啟失敗!! \n");
system("pause");
return 0;}
else
printf("%s檔案以唯讀模式開啟順利 !!\n",filename);
/*回傳檔案開啟成功與否*/
fread(&image_matrix1[500][1000], sizeof(unsigned char), 1, stream);
fwrite(&image_matrix1[500][1000],sizeof(unsigned char),1,fp );
fclose(stream);
fclose(fp);
system("pause");
return 0;}
我找不出問題出在哪裡,或是還有更好的方式可以確定,fread有正確的用希望
的方式讀檔?
感謝
開發平台: Dev-C++
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.208.6
※ 編輯: dongmomo 來自: 61.217.208.6 (05/15 23:34)
推
05/15 23:51, , 1F
05/15 23:51, 1F
→
05/15 23:54, , 2F
05/15 23:54, 2F
推
05/16 00:02, , 3F
05/16 00:02, 3F
→
05/16 00:03, , 4F
05/16 00:03, 4F
→
05/16 00:04, , 5F
05/16 00:04, 5F
推
05/16 00:12, , 6F
05/16 00:12, 6F
→
05/16 00:14, , 7F
05/16 00:14, 7F
→
05/16 00:16, , 8F
05/16 00:16, 8F
推
05/16 01:32, , 9F
05/16 01:32, 9F
→
05/16 01:33, , 10F
05/16 01:33, 10F