I strongly suggest you using
std::vector
, instead of
C
-like arrays. Try, for instance:
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
struct User
{
string name, pwd;
bool loggedin;
};
void adduser( vector <User> & v );
void deluser( vector <User> & v );
void loguser( vector <User> & v );
int main()
{
vector <User> v {{"may", "686668", false},{"kj", "7977979" , false}};
char choice;
do
{
cout << "insert '+' to add a user, '-' to delete a user, 'l' to login, 'q' to quit\n";
cin >> choice;
switch ( choice)
{
case '+':
adduser(v);
break;
case '-':
deluser(v);
break;
case 'l':
loguser(v);
break;
}
} while (choice != 'q');
cout << "bye" << endl;
}
void adduser( vector <User> & v)
{
string name;
cout << "please enter the new user name\n";
cin >> name;
auto it_found = find_if(v.begin(), v.end(), [ & name ] (auto u) { return u.name == name; } );
if (it_found != v.end() )
{
cout << "this user name is already present\n";
return;
}
string pwd;
cout << "plaese enter the password for this user\n";
cin >> pwd;
v.emplace_back(User{ name, pwd, false } );
}
void deluser( vector <User> & v)
{
cout << "implementation left as exercise\n";
}
void loguser( vector <User> & v)
{
cout << "implementation left as exercise\n";
}