いつもお世話になっています。プログC初心者でただいま勉強中です。ファイルをプログラム中で開き、先頭から1文字ずつ比較して、二つのファイルの内容が一致するかどうかを調べて結果を表示するプログラムをつくりたいんです。でもファイルの内容が不一致のときに、何文字めが違うかを表示させたいんですが、ゼロ文字目となってしまいます。どうしたらよいですか?以下がコードです。```C言語
コード
#include<stdlib.h> #define MAX 1000 int main() { char buf[MAX],bu[MAX]; int i,n,c,j,count=0,m; FILE *fpin1,*fpin2; fpin1=fopen("mydata.out","r"); fpin2=fopen("data.out","r"); if(fpin1==NULL || fpin2==NULL){ printf("read file open error\n"); exit(1); } for(n=0;n<MAX;n++){ j= fscanf(fpin1,"%c",&buf[n]); if(j==-1){ break; } } for(n=0;n<MAX;n++){ i= fscanf(fpin2,"%c",&bu[n]); printf("countは%dだ\n",count); if(i==-1){ break; } } for(m=0;m<MAX;m++){ // printf("buf[m]は%cだ\n",buf[n]); // printf("bu[m]は%cだ\n",bu[n]); if(buf[m]==bu[m]){ count+=1; printf("countは%dだ\n",count); } else{ break; } } fclose(fpin1); fclose(fpin2); if(count==1000){ printf(" Two files are identical.\n"); } else printf("Two files are different at %d byte.\n",count); return 0; }
回答1件
あなたの回答
tips
プレビュー