c语言,编写程序,从文件idcard.txt中读入若干个人的姓名和身份证号码,提取每个人的生日信息,将每个人的姓名和生日信息写入文件birthday.txt中
时间: 2024-02-26 20:55:58 浏览: 81
好的,这是一个比较简单的C语言编程任务,以下是一个可能的实现方式:
```c
#include <stdio.h>
int main()
{
FILE *in_file, *out_file;
char name[20], id[19];
int year, month, day;
// 打开输入文件
in_file = fopen("idcard.txt", "r");
if (in_file == NULL)
{
printf("无法打开输入文件!\n");
return 1;
}
// 打开输出文件
out_file = fopen("birthday.txt", "w");
if (out_file == NULL)
{
printf("无法打开输出文件!\n");
return 1;
}
// 逐行读取输入文件,提取生日信息,并写入输出文件
while (fscanf(in_file, "%s %s", name, id) == 2)
{
sscanf(id, "%4d%2d%2d", &year, &month, &day);
fprintf(out_file, "%s %04d-%02d-%02d\n", name, year, month, day);
}
// 关闭文件
fclose(in_file);
fclose(out_file);
printf("生日信息已提取并写入 birthday.txt 文件中!\n");
return 0;
}
```
该程序首先打开输入文件 `idcard.txt` 和输出文件 `birthday.txt`,然后逐行读取输入文件,每次读取一行中的姓名和身份证号码,并通过 `sscanf` 函数提取出身份证号码中的年、月、日信息。最后,将每个人的姓名和生日信息按照指定格式写入输出文件。最后,程序关闭文件并输出提示信息。
需要注意的是,本程序假定输入文件中每行仅包含一个人的姓名和身份证号码,且身份证号码的格式为 18 位数字。如果输入文件的格式与此不同,程序可能无法正常工作。
阅读全文