Pre-requisite: Basics of File Handling in C
Given a text file in a directory, the task is to print all the odd line content of the file first then print all the even line content.
Examples:
Input: file1.txt:
Welcome
to
GeeksforGeeks
Output:
Odd line contents:
Welcome
GeeksforGeeks
Even line contents:
to
Input: file1.txt:
1. This is Line1.
2. This is Line2.
3. This is Line3.
4. This is Line4.
Output:
Odd line contents:
1. This is Line1.
3. This is Line3.
Even line contents:
2. This is Line2.
4. This is Line4.
Approach:
Below is the implementation of the above approach:
// C program for the above approach #include // Function which prints the file content // in Odd Even manner void printOddEvenLines(char x[]) { // Opening the path entered by user FILE* fp = fopen(x, "a+"); // If file is null, then return if (!fp) { printf("Unable to open/detect file"); return; } // Insert a new line at the end so // that output doesn't get effected fprintf(fp, "\n"); // fseek() function to move the // file pointer to 0th position fseek(fp, 0, 0); int check = 0; char buf[100]; // Print Odd lines to stdout while (fgets(buf, sizeof(buf), fp)) { // If check is Odd, then it is // odd line if (!(check % 2)) { printf("%s", buf); } check++; } check = 1; // fseek() function to rewind the // file pointer to 0th position fseek(fp, 0, 0); // Print Even lines to stdout while (fgets(buf, sizeof(buf), fp)) { if (!(check % 2)) { printf("%s", buf); } check++; } // Close the file fclose(fp); return; } // Driver Code int main() { // Input filename char x[] = "file1.txt"; // Function Call printOddEvenLines(x); return 0; }