📜  C程序打印文件的奇数行内容,后跟偶数行内容(1)

📅  最后修改于: 2023-12-03 15:00:13.099000             🧑  作者: Mango

以C程序打印文件的奇数行内容,后跟偶数行内容

在编写C程序时,我们经常需要处理文件数据。其中一个常见问题是打印文件中的文本行。本文将介绍如何以C程序打印文件的奇数行内容,后跟偶数行内容。

读取文件

在C中,要读取文件,必须使用文件指针。下面的代码演示了如何打开文件并读取它的内容。

#include <stdio.h>
#include <stdlib.h>

int main() {
    char filename[] = "example.txt";
    FILE *fp;
    char ch;

    // 打开文件
    if ((fp = fopen(filename, "r")) == NULL) {
        printf("Failed to open file: %s\n", filename);
        exit(EXIT_FAILURE);
    }

    // 读取文件
    while ((ch = fgetc(fp)) != EOF) {
        printf("%c", ch);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

在上面的代码中,我们使用了fopen函数打开了一个名为example.txt的文件。如果打开失败了,程序会输出一个错误信息,并退出运行。然后,我们使用fgetc函数逐个字符读取文件的内容,并将其输出到控制台上。最后,我们使用fclose函数关闭了文件。

打印奇数行和偶数行

接下来,我们要成为这个程序的核心,打印文件的奇数行和偶数行内容。下面是代码:

#include <stdio.h>
#include <stdlib.h>

int main() {
    char filename[] = "example.txt";
    FILE *fp;
    char line[1024];
    int i=1;

    // 打开文件
    if ((fp = fopen(filename, "r")) == NULL) {
        printf("Failed to open file: %s\n", filename);
        exit(EXIT_FAILURE);
    }

    // 读取文件并打印奇数行和偶数行
    while (fgets(line, 1024, fp) != NULL) {
        if (i % 2 != 0) { // 打印奇数行
            printf("Odd Line: %s", line);
        } else { // 打印偶数行
            printf("Even Line: %s", line);
        }
        i++;
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

在上面的代码中,我们使用了fgets函数逐行读取文件的内容,然后使用printf函数打印每行的内容。如果行号是奇数,我们就打印"Odd Line"和这一行的内容。如果行号是偶数,我们就打印"Even Line"和这一行的内容。

总结

本文介绍了如何以C程序打印文件的奇数行内容,后跟偶数行内容。我们首先学习了如何读取文件,然后演示了如何打印奇数行和偶数行。这个程序可以扩展到处理更多有趣的文本文件。