c语言从文件idcard.txt中读入若干个人的姓名和身份证号码,提取每个人的生日信息,将每个人的姓名和生日信息写入文件birthday.txt中
时间: 2024-03-19 13:40:58 浏览: 204
好的,我了解了。下面是一个示例代码,可以帮助你实现这个功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 假设每个人的姓名和身份证号码不超过 100 个字符
int main() {
FILE *fp_in, *fp_out;
char name[MAX_LEN], id[MAX_LEN], birthday[MAX_LEN];
int year, month, day;
// 打开输入文件
fp_in = fopen("idcard.txt", "r");
if (fp_in == NULL) {
printf("Error: failed to open input file.\n");
return 1;
}
// 打开输出文件
fp_out = fopen("birthday.txt", "w");
if (fp_out == NULL) {
printf("Error: failed to open output file.\n");
fclose(fp_in);
return 1;
}
// 读入每个人的姓名和身份证号码,并提取生日信息
while (fscanf(fp_in, "%s %s", name, id) == 2) {
sscanf(id, "%4d%2d%2d", &year, &month, &day); // 假设身份证号码的前 8 位是生日信息
sprintf(birthday, "%04d-%02d-%02d", year, month, day); // 将生日信息转换为字符串
fprintf(fp_out, "%s %s\n", name, birthday); // 将姓名和生日信息写入输出文件
}
// 关闭文件
fclose(fp_in);
fclose(fp_out);
return 0;
}
```
这个程序中,我们首先打开输入文件 `idcard.txt` 和输出文件 `birthday.txt`。然后,我们使用 `fscanf` 函数从输入文件中读入每个人的姓名和身份证号码。接着,我们使用 `sscanf` 函数从身份证号码中提取出生日信息,并使用 `sprintf` 函数将生日信息转换成字符串形式。最后,我们使用 `fprintf` 函数将每个人的姓名和生日信息写入输出文件。程序运行完毕后,我们关闭输入文件和输出文件。
阅读全文