/* * Author : Amit Dutta * Date : 08 Feb 2026 * Repo : https://github.com/notamitgamer/bsc * License : MIT License (See the LICENSE file for details) */ /* Write a program that merges lines alternately from two files and writes the results to a new file. Handle remaining lines if file sizes differ. */ /* Let Us C, Chap- 19 (File Input/Output), Qn No.: B(c) */ /* This file is auto-generated by a bot. */ /* This code is not compiled; it is for reference only. */ #include #include #include #include void create_sample_files(); int main() { FILE *fp1, *fp2, *fp3; char line1[100], line2[100]; char *res1, *res2; create_sample_files(); fp1 = fopen("file1.txt", "r"); fp2 = fopen("file2.txt", "r"); fp3 = fopen("merge.txt", "w"); if (fp1 == NULL || fp2 == NULL || fp3 == NULL) { printf("File error.\n"); exit(1); } // Read lines from both files res1 = fgets(line1, sizeof(line1), fp1); res2 = fgets(line2, sizeof(line2), fp2); while (res1 != NULL && res2 != NULL) { fputs(line1, fp3); fputs(line2, fp3); res1 = fgets(line1, sizeof(line1), fp1); res2 = fgets(line2, sizeof(line2), fp2); } // Append remaining lines from file 1 while (res1 != NULL) { fputs(line1, fp3); res1 = fgets(line1, sizeof(line1), fp1); } // Append remaining lines from file 2 while (res2 != NULL) { fputs(line2, fp3); res2 = fgets(line2, sizeof(line2), fp2); } printf("Files merged alternately into 'merge.txt'.\n"); fclose(fp1); fclose(fp2); fclose(fp3); return 0; } void create_sample_files() { FILE *f1 = fopen("file1.txt", "w"); FILE *f2 = fopen("file2.txt", "w"); fprintf(f1, "File 1 - Line A\nFile 1 - Line B\nFile 1 - Line C\n"); fprintf(f2, "File 2 - Line 1\nFile 2 - Line 2\nFile 2 - Line 3\nFile 2 - Line 4\n"); fclose(f1); fclose(f2); }