编写c语言程序,从界面接受用户输入用户名,回车确认后,从文件中找到该用户名的详细信息,结构化如下面所示。
请输入用户名:
…
您查找的用户信息如下:
用户名:
性别:
年龄:
身高:
一个实现,供参考:
#include <stdio.h>
#include <string.h>
struct person{ //定义用户信息结构
char name[20]; //用户名
char sex[10]; //性别
int age; //年龄
float height; //身高
};
int main(void){
FILE * fp= fopen("person.txt","r"); //打开文件
if(fp==NULL){
printf("打开文件失败,程序退出!\n");
return 0;
}
char name[20];
printf("请输入要查询的用户名:");
scanf("%s",name); //获取要查询的用户名
person temp;
int find=0; //查找标记,默认0为没有查找到 ,1为找到
while(feof(fp)==0){ //如果访问文件没有达到文件结尾
fscanf(fp,"%s%s%d%f ",temp.name,temp.sex,&temp.age,&temp.height); //读取一个用户信息到用户信息结构变量temp,以逐个比较用户
//如果从文件读取到的用户信息的用户名和要查找的用户名相同,则打印结果, 同时查找标记置1表示找到,然后退出循环
if(strcmp(temp.name,name)==0){
find=1;
printf("查询到的用户信息如下:\n");
printf("用户名:%s\n",temp.name);
printf("性别:%s\n",temp.sex);
printf("年龄:%d\n",temp.age);
printf("身高:%.2f\n",temp.height);
break;
}
}
if(find==0){ //如果没有找到则打印没有找到信息的提示
printf("没有找到%s用户的信息。\n",name);
}
fclose(fp); //关闭文件
return 0;
}
在编译生成exe的目录下新建person.txt文件,可自行修改,测试内容如下:
张三 男 25 168 小花 女 26 167 李四 男 28 169 王五 男 29 170