[英]Please help me with my source code c++
When I input username and password and the output the program is:当我输入用户名和密码并且输出程序是:
Wrong Password!!!Wrong Password!!!Wrong Password!!!Wrong Password!!!Wrong Password!!!Wrong Password!!!密码错误!!!密码错误!!!密码错误!!!密码错误!!!密码错误!!!密码错误!!!
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
typedef struct data{
char user[50], pass[50];
} data;
using namespace std;
int main(){
ifstream fi;
ofstream fo;
data log;
char finduser[50];
char findpass[50];
string regis= "";
cout << "registered?[Yes/No]";
cin >> regis;
if(regis == "No"){
cout << "Register Panel";
fo.open("log.txt", ios::binary | ios::app);
cout << "\nUsername: ";cin >> log.user;
cout << "Password: ";cin >> log.pass;
fo.write((char *) &log, sizeof(log));
fo.close();
goto login;
}else{
login:
cout << "\nLogin Panel";
cout << "\nUsername: ";
cin >> finduser;
cout << "Password: ";
cin >> findpass;
fi.open("log.txt", ios::binary);
while(fi.read((char *) &log, sizeof(log))){
if(strcmp(log.user, finduser) == 0 && (strcmp(log.pass,findpass) == 0)){
cout << "\nLogin Succes";
}else{
cout << "Wrong Password!!!";
}
}
fi.close();
}
getchar();
return 0;
}
What are the problems of my C ++ code ?我的 C++ 代码有什么问题?
I have tried many different ways but still get an error:我尝试了很多不同的方法,但仍然出现错误:
registered?[Yes/No]No
Register Panel
Username: aaa
Password: aaa
Login Panel
Username: aaa
Password: aaa
Wrong Password!!!Wrong Password!!!Wrong Password!!!Wrong Password!!!Wrong Password!!!Wrong Password!!!
Login Succes
------------------
(program exited with code: 0)
Press return to continue
You are checking multiple line from log.txt.您正在检查 log.txt 中的多行。 And printing Wrong Password
for each line for mismatch.并为不匹配的每一行打印Wrong Password
。
You should do like this:你应该这样做:
bool success = false;
while(fi.read((char *) &log, sizeof(log)))
{
if(strcmp(log.user, finduser) == 0 && (strcmp(log.pass,findpass) == 0))
{
cout << "\nLogin Succes";
success = true;
break;
}
}
fi.close();
if(!success)
{
cout<<"Wrong Password!!!";
}
You need to check your whole file to match.您需要检查整个文件以匹配。 And show output one time.并显示输出一次。
Hope this will help希望这会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.