#include int main(int argc, char **argv) { FILE *fp0, *fp1; int x, y; int eof0, eof1; /* EOF if eof (hence we didn't call them "iseof") */ if (argc != 3) { fprintf(stderr, "usage: %s file1 file2\n", argv[0]); return 1; } if ((fp0 = fopen(argv[1], "r")) == NULL) { perror(argv[1]); return 1; } if ((fp1 = fopen(argv[2], "r")) == NULL) { perror(argv[2]); return 1; } eof0 = fscanf(fp0, "%d", &x); eof1 = fscanf(fp1, "%d", &y); while (eof0 != EOF && eof1 != EOF) { if (x < y) { printf("%d\n", x); eof0 = fscanf(fp0, "%d", &x); } else { printf("%d\n", y); eof1 = fscanf(fp1, "%d", &y); } } while (eof0 != EOF) { printf("%d\n", x); eof0 = fscanf(fp0, "%d", &x); } while (eof1 != EOF) { printf("%d\n", y); eof1 = fscanf(fp1, "%d", &y); } return 0; }