【C言語】キーボードから中身が違っているかを調べたい2つのファイルのファイル名を入力し、これら2つのファイルの中身を比べて、違っている最初の行を表示するプログラムを作ってください。
【C言語】キーボードから中身が違っているかを調べたい2つのファイルのファイル名を入力し、これら2つのファイルの中身を比べて、違っている最初の行を表示するプログラムを作ってください。
ベストアンサー
(Shroudさん) 文面から対象はテキストファイルと想定します 例: #include <stdio.h> #include <string.h> int main(void) { FILE *fp1, *fp2; char fn1[64], fn2[64]; char t1[128], t2[128]; char *p1, *p2; int line=0, f=0; printf("file1 name>"); scanf("%s", fn1); printf("file2 name>"); scanf("%s", fn2); if ((fp1 = fopen(fn1, "r")) == NULL) { printf("%s File open error!!\n", fn1); return 1; } if ((fp2 = fopen(fn2, "r")) == NULL) { printf("%s File open error!!\n", fn2); fclose(fp2); return 1; } while(1) { p1=fgets(t1, 127, fp1); p2=fgets(t2, 127, fp2); line++; if(p1==NULL && p2==NULL)break; if(p1==NULL || p2==NULL) { f=1; break; }; if(strcmp(t1, t2)!=0) { f=1; break; } } if(f==0) { puts("match!!"); } else { puts("not match!!"); if(p1 != NULL) { printf("file1 %d: %s", line, p1); }else{ printf("file1 %d: %s", line, "(no line)\n"); } if(p2 != NULL) { printf("file2 %d: %s", line, p2); }else{ printf("file2 %d: %s", line, "(no line)\n"); } } fclose(fp1); fclose(fp2); return 0; }
この返信は削除されました
質問者からのお礼コメント
ありがとうございました!( ´ ` *)
お礼日時:1/18 12:45