bsc

Comprehensive codebase and cou...
Log | Files | Refs | Activity | README | LICENSE

root / semester_1 / letusc / luc087.c

luc087.c (1864B)


      1 /* 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.
      2 */
      3 /* Let Us C, Chap- 19 (File Input/Output), Qn No.: B(c) */
      4 
      5 /* This file is auto-generated by a bot. */
      6 /* This code is not compiled; it is for reference only. */
      7 
      8 
      9 #include <stdio.h>
     10 #include <stdlib.h>
     11 #include <string.h>
     12 #include <ctype.h>
     13 
     14 void create_sample_files();
     15 
     16 int main()
     17 {
     18     FILE *fp1, *fp2, *fp3;
     19     char line1[100], line2[100];
     20     char *res1, *res2;
     21 
     22     create_sample_files();
     23 
     24     fp1 = fopen("file1.txt", "r");
     25     fp2 = fopen("file2.txt", "r");
     26     fp3 = fopen("merge.txt", "w");
     27 
     28     if (fp1 == NULL || fp2 == NULL || fp3 == NULL)
     29     {
     30         printf("File error.\n");
     31         exit(1);
     32     }
     33 
     34     // Read lines from both files
     35     res1 = fgets(line1, sizeof(line1), fp1);
     36     res2 = fgets(line2, sizeof(line2), fp2);
     37 
     38     while (res1 != NULL && res2 != NULL)
     39     {
     40         fputs(line1, fp3);
     41         fputs(line2, fp3);
     42         
     43         res1 = fgets(line1, sizeof(line1), fp1);
     44         res2 = fgets(line2, sizeof(line2), fp2);
     45     }
     46 
     47     // Append remaining lines from file 1
     48     while (res1 != NULL)
     49     {
     50         fputs(line1, fp3);
     51         res1 = fgets(line1, sizeof(line1), fp1);
     52     }
     53 
     54     // Append remaining lines from file 2
     55     while (res2 != NULL)
     56     {
     57         fputs(line2, fp3);
     58         res2 = fgets(line2, sizeof(line2), fp2);
     59     }
     60 
     61     printf("Files merged alternately into 'merge.txt'.\n");
     62 
     63     fclose(fp1);
     64     fclose(fp2);
     65     fclose(fp3);
     66 
     67     return 0;
     68 }
     69 
     70 void create_sample_files()
     71 {
     72     FILE *f1 = fopen("file1.txt", "w");
     73     FILE *f2 = fopen("file2.txt", "w");
     74     
     75     fprintf(f1, "File 1 - Line A\nFile 1 - Line B\nFile 1 - Line C\n");
     76     fprintf(f2, "File 2 - Line 1\nFile 2 - Line 2\nFile 2 - Line 3\nFile 2 - Line 4\n");
     77     
     78     fclose(f1);
     79     fclose(f2);
     80 }
© notamitgamer • Site Built: 2026-09-05 01:53:16 UTC • git-mirror commit: c170d72 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror