面试题答案
一键面试#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
文件且文件格式符合要求(每行是 “姓名 成绩” 的格式,中间用空格隔开)。