代码如下:
#include<stdio.h>
#pragma warning(disable:4996)
#include<string.h>
int main()
{
int i = 0
char password[10] = { 0 }
while (i <3)
{
scanf("%s", password)
printf("\n")
if (strcmp(password, "972816") == 0)
{
printf("登录成功\n")
break
}
else
{
i++
if (i != 3)
printf("再输入一次")
}
}
if (i == 3)
printf("密码错误三次退出登录界面\n")
system("pause")
return 0
扩展资料:
#include后面有两种方式,<>;和""前者先在标准库中查找,查找不到在path中查找。后者为文件路径,若直接是文件名则在项目根目录下查找。
引用方法:#include <stdio.h>
注意事项:在TC2.0中,允许不引用此头文件而直接调用其中的函数,但这种做法是不标准的。也不建议这样做。以避免出现在其他IDE中无法编译或执行的问题。
参考资料来源:百度百科—include
参考资料来源:百度百科—stdio.h
请把原码全部贴出来,这个截图太模糊。我从模糊的图片中,看到类似fread的字样。那么你的账户密码信息是从一个文件中读取出来。
那么:
一、检查你文件中的原始数据是否有写错。
二、用于存储的变量空间是否够存储全部读取的数据。
三、对一个文件多次读写后,文件指针不在初始位置,确认是否需要fseek设置文件指针初始位置。
四、检查fopen是否执行成功。比如:多次fopen同一个文件,但前一次没有用fclose关闭文件流。
#include <stdio.h>#include <string.h>
typedef struct account{
char name[32]
char acc[16]
char psw[16]
}Acc
// data是结构体数组,filename是文件绝对地址,n保存读入的结构体数量
void GetDataFromTxt(Acc* data, const char* filename, int* n)
{
FILE *fp = fopen(filename, "r")
if( NULL == fp ){
printf("Open file failed or no this file!\n")
return
}
int i = 0
while( !feof(fp) )
{
fscanf(fp, "%s %s %s", data[i].name, data[i].acc, data[i].psw)
i++
}
*n = i
}
int main()
{
int i, n
Acc data[100]
// 获取数据
GetDataFromTxt(data, "E:\\secret.txt", &n)
printf("n = %d\n", n)
printf("姓名 账号 密码\n")
for(i = 0 i < n ++i)
printf("%-4s %-16s %-10s\n", data[i].name, data[i].acc, data[i].psw)
// 登录示例
putchar('\n')
char acc[16], psw[16]
do{
// 这里只是粗略地写了一个
// 具体的账号错误或者密码错误自行发挥
printf("请输入账号:")
scanf("%s", acc)
printf("请输入密码:")
scanf("%s", psw)
for(i = 0 i < n ++i)
{
if( strcmp(acc,data[i].acc)==0 && strcmp(psw,data[i].psw)==0 ){
printf("登陆成功!\n")
break
}
}
if( i == n ){
printf("账号或密码不正确!请重新输入!\n\n")
}else{
break
}
}while(1)
printf("Bye bye!!!\n")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)