#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef char datatype[20];
typedef struct student
{
datatype name;
datatype passwd;
}*stu;
stu create()
{
stu t = (stu)malloc(sizeof(struct student));
if(!t)
{
printf("create failed\n");
return NULL;
}
return t;
}
int input(int n)
{
stu p = create();
FILE* fp = fopen("usr.txt","a+");
for(int i =0; i < n; i++)
{
printf("input name passwd\n");
scanf(" %s %s",p->name,p->passwd);
fprintf(fp,"%s %s\n",p->name,p->passwd);
}
if(EOF == fclose(fp))
{
perror("fclose");
return -1;
}
printf("fclose success\n");
}
int search()
{
//Struct student all_name[20];
stu p = create();
stu q = create();
char c;
datatype tmp;
FILE* fp = fopen("usr.txt","a+");
int count = 0;
printf("input search-name search-passwd \n");
scanf(" %s %s",q->name,q->passwd);
while(1)
{
fscanf(fp,"%s",p->name);
int ret = fscanf(fp,"%s",p->passwd);
if(EOF == ret) break;
if(!strcmp(p->name,q->name))
{
if(!strcmp(p->passwd,q->passwd))
{
printf("search success\n");
return 0;
}
else
count = 1;
}
}
if(count) printf("passwd wrong\n");
printf("search failed\n");
if(EOF == fclose(fp))
{
perror("fclose");
return -1;
}
printf("fclose success\n");
}
int main(int argc, const char *argv[])
{
int n;
// printf("input student number\n");
// scanf("%d",&n);
// input(n);
search();
return 0;
}
【IO】day1
最新推荐文章于 2024-10-02 21:02:12 发布
该程序定义了一个学生结构体,包含姓名和密码两个字段。它实现了创建学生信息(输入姓名和密码并保存到文件)以及搜索学生信息(按姓名和密码匹配)的功能。如果搜索时密码不正确,会给出提示。文件操作包括追加模式打开和关闭。
摘要由CSDN通过智能技术生成