MST

星途 面试题库

面试题:C语言中fscanf和fprintf基础应用

假设你有一个文本文件,里面每行记录了一个学生的姓名和成绩(格式:姓名 成绩,中间用空格隔开)。请使用C语言的fscanf和fprintf函数实现从该文件读取学生信息,并将成绩大于60分的学生信息写入到另一个文件中。
15.7万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

int main() {
    FILE *srcFile, *dstFile;
    char name[50];
    int score;

    // 打开源文件进行读取
    srcFile = fopen("source.txt", "r");
    if (srcFile == NULL) {
        perror("无法打开源文件");
        return 1;
    }

    // 打开目标文件进行写入
    dstFile = fopen("destination.txt", "w");
    if (dstFile == NULL) {
        perror("无法打开目标文件");
        fclose(srcFile);
        return 1;
    }

    // 从源文件读取学生信息,并筛选成绩大于60分的写入目标文件
    while (fscanf(srcFile, "%s %d", name, &score) != EOF) {
        if (score > 60) {
            fprintf(dstFile, "%s %d\n", name, score);
        }
    }

    // 关闭文件
    fclose(srcFile);
    fclose(dstFile);

    return 0;
}

上述代码首先打开源文件 source.txt 进行读取,打开目标文件 destination.txt 进行写入。然后通过 fscanf 从源文件逐行读取学生姓名和成绩,判断成绩是否大于60分,如果是则通过 fprintf 将学生信息写入目标文件。最后关闭两个文件。确保在运行前,当前目录下存在 source.txt 文件且文件格式符合要求(每行是 “姓名 成绩” 的格式,中间用空格隔开)。