要求用C语言把文件id.txt中若干个人的姓名和身份证号码显示在屏幕上。然后,将其生日信息提取出来存放到一字符串中,并将所提取的姓名和生日信息写入另一个文件bd.txt。其中id.txt内容如下:张红 310110199609093420 王伟 310110199706151321 陶涛 220120199811086713
时间: 2023-07-14 18:12:58 浏览: 310
以下是实现上述功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp_in = fopen("id.txt", "r"); // 打开输入文件
FILE *fp_out = fopen("bd.txt", "w"); // 打开输出文件
char name[20], id[20], birthday[9];
while (fscanf(fp_in, "%s %s", name, id) != EOF) { // 从输入文件读取姓名和身份证号码
strncpy(birthday, id+6, 8); // 提取出生日期信息
birthday[8] = '\0'; // 在字符串末尾添加结束符
printf("%s的生日是%s\n", name, birthday); // 在屏幕上显示姓名和生日信息
fprintf(fp_out, "%s %s\n", name, birthday); // 将姓名和生日信息写入输出文件
}
fclose(fp_in); // 关闭输入文件
fclose(fp_out); // 关闭输出文件
return 0;
}
```
上述代码中,我们首先打开输入文件和输出文件,然后使用 `fscanf()` 函数从输入文件中逐行读取姓名和身份证号码,并使用 `strncpy()` 函数将身份证号码中的生日信息提取出来存放到 `birthday` 字符串中。然后在屏幕上显示姓名和生日信息,并使用 `fprintf()` 函数将姓名和生日信息写入输出文件。最后关闭输入文件和输出文件,程序结束运行。
阅读全文