用C++程序设计:新建一个txt后缀的文本文档,里面有十行内容,每行前十个字符为姓名,后三个字符为成绩,自行输入。编程实现从键盘输入字符串姓名,判断文本文档里面有没有这个姓名,有就输出姓名和成绩,没有就输入“这个人不存在”。
时间: 2023-06-10 21:04:20 浏览: 56
好的,让我试试回答你的问题。首先,我明白你的要求是关于C程序的。因此,让我为你编写一个简单的C程序来实现你的要求。
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LENGTH 10
#define MAX_GRADE_LENGTH 3
int main() {
FILE *fp; // 文件指针
char name[MAX_NAME_LENGTH + 1]; // 存储输入的姓名
char grade[MAX_GRADE_LENGTH + 1]; // 存储读取到的成绩
char line[MAX_NAME_LENGTH + MAX_GRADE_LENGTH + 2]; // 存储读取到的一行数据
int found = 0; // 标记是否找到
// 新建文本文档
fp = fopen("student.txt", "w");
fprintf(fp, "John 100\n");
fprintf(fp, "Mary 90\n");
fprintf(fp, "Peter 80\n");
fprintf(fp, "David 85\n");
fprintf(fp, "Tom 92\n");
fprintf(fp, "Lucy 76\n");
fprintf(fp, "Jerry 88\n");
fprintf(fp, "Bob 79\n");
fprintf(fp, "Alice 94\n");
fprintf(fp, "Kate 87\n");
fclose(fp);
// 从键盘输入姓名
printf("请输入姓名:");
scanf("%s", name);
// 读取文本文档,查找是否存在该名称
fp = fopen("student.txt", "r");
while (fgets(line, sizeof(line), fp)) {
sscanf(line, "%s%s", name, grade);
if (strcmp(name, line) == 0) {
found = 1;
printf("姓名:%s,成绩:%s\n", name, grade);
break;
}
}
fclose(fp);
// 输出结果
if (!found) {
printf("这个人不存在。\n");
}
return 0;
}
```
使用方法:
1. 将上述代码保存为一个名为 `exam.c` 的文件;
2. 打开命令行终端;
3. 进入到保存该文件的目录下;
4. 输入以下命令进行编译(你需要先安装GCC编译器):
```bash
gcc exam.c -o exam
```
5. 编译成功后,输入以下命令运行程序:
```bash
./exam
```
6. 按照程序提示输入姓名,即可查询成绩。