演習7-6 K&R プログラミング言語C
2010年03月11日
演習7-6
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 1024 int main(int argc, char *argv[]) { char *prog = argv[0]; FILE *fp1, *fp2; void filediff(FILE*, FILE*); if (argc == 3) { if ((fp1 = fopen(argv[1], "r")) == NULL) { fprintf(stderr, "%s: can't open %s\n", prog, argv[1]); exit(EXIT_FAILURE); } if ((fp2 = fopen(argv[2], "r")) == NULL) { fprintf(stderr, "%s: can't open %s\n", prog, argv[2]); exit(EXIT_FAILURE); } filediff(fp1, fp2); fclose(fp1); fclose(fp2); } else { fprintf(stderr, "%s: 2 file required\n", prog); exit(EXIT_FAILURE); } return 0; } void filediff(FILE *fp1, FILE *fp2) { char line1[MAXSIZE], line2[MAXSIZE]; int count = 1; while ((fgets(line1, MAXSIZE, fp1) != NULL) && (fgets(line2, MAXSIZE, fp2) != NULL)) { if (strcmp(line1, line2) != 0) { printf("%d\n%s%s", count, line1, line2); exit(EXIT_SUCCESS); } count++; } }
実行結果
$ cat foo.txt hello, world hello, world hello, world hello, world hello, world hello, world $ cat moo.txt hello, world hello, world hello, world hello, world! hello, world hello, world $ ./ex7-6 foo.txt moo.txt 4 hello, world hello, world!
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726