void Student(struct student stu[N]) { int n = 0,sum=N; FILE* fp = fopen("666.txt", "r"); struct student *p = stu; char num1[13], pass1[10]; char num[13], pass[10]; while (1) { input: printf("请输入学号:"); scanf("%s",&num); printf("请输入密码:"); scanf("%s",&pass); while (fscanf(fp, "%s %s", num1, pass1) != EOF) { if(strcmp(num1, num) == 0 && strcmp(pass1, pass) == 0){ printf("登录成功!\n"); break; } } if (feof(fp)) { printf("你输入错误,请重新输入!\n"); fseek(fp, 0, SEEK_SET); // 文件指针回到文件开头 } else { break; } } fclose(fp); // 关闭文件 }while优化代码
时间: 2024-04-07 07:31:57 浏览: 52
c语言求1+2+...+n的解决方法
void Student(struct student stu[N]) {
int n = 0,sum=N;
FILE* fp = fopen("666.txt", "r");
struct student *p = stu;
char num1[13], pass1[10];
char num[13], pass[10];
int login_success = 0; // 新增一个变量用于记录是否登录成功
while (!login_success) { // 只有登录成功才会跳出循环
printf("请输入学号:");
scanf("%s", num);
printf("请输入密码:");
scanf("%s", pass);
fseek(fp, 0, SEEK_SET); // 文件指针回到文件开头
while (fscanf(fp, "%s %s", num1, pass1) != EOF) {
if(strcmp(num1, num) == 0 && strcmp(pass1, pass) == 0){
printf("登录成功!\n");
login_success = 1; // 标记为登录成功
break;
}
}
if (!login_success) { // 如果登录失败则提示重新输入
printf("你输入错误,请重新输入!\n");
}
}
fclose(fp); // 关闭文件
}
阅读全文