Ok,so im making a c++ program that has two seperate methods to generate a random password and one to take a user generated and validate it.But im getting errors with the methods and returning passwords.Im new to c++ so id appreciate if someone could give me some pointers in where im making mistakes.Im having trouble in particular with declaring methods as I’m not sure if they take parameters and if they should be int or other.I get the following errors:
error C4430: missing type specifier – int assumed. Note: C++ does not support default-int
error C4244: ‘argument’ : conversion from ‘time_t’ to ‘unsigned int’, possible loss of data
error C2082: redefinition of formal parameter ‘str’
error C2660: ‘countLetters’ : function does not take 6 arguments
error C2110: ‘+’ : cannot add two pointers
error C2660: ‘countLetters’ : function does not take 6 arguments
error C2110: ‘+’ : cannot add two pointers
warning C4018: ‘<‘ : signed/unsigned mismatch
Thanks,
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
#include <windows.h>
#include <ctime>
#include <string.h>
using namespace std;
#define MAX 80
//declaring functions
int showMenu();
int generatePass();
int validatePass();
int countLetters(char *, int *, int *, int *, int *);
main()
{
int iChoice;
// have menu appear, user makes decision, do work, reshow menu
// do this until user enters 5
do
{
iChoice = showMenu();
}while(iChoice != 3);
printf("\n\n\n");
system("pause");
} //end of main
//Methods placed here:
//showMenu method calls program menu,either 1.generate password,2.enter password and validate. or 3.exit(close program)
int showMenu() {
int iChoice;
system("cls");
printf("\n\n\t\tWelcome to Password Generator and Validator\n\n");
printf("\n\t\t1. Generate");
printf("\n\t\t2. Validate");
printf("\n\t\t3. Exit");
printf("\n\n\t\tEnter your menu choice: ");
fflush(stdin);
scanf("%d", &iChoice);
// user enters one of 3 values
// generate,validate or exit program
switch (iChoice) {
case 1: // generate
{
generatePass();
break;
}
case 2: // validate
{
validatePass();
break;
}
case 3: // exit
{
printf("\n\nProgram exiting!...");
break;
}
default: {
break;
}
} //end of switch
return (iChoice);
} //end of showMenu
//method to generate a random password for user following password guidelines.
string generatePass(string str) {
char password[MAX + 1];
int iChar, iUpper, iLower, iSymbol, iNumber, iTotal;
printf("\n\n\t\tGenerate Password selected ");
printf("\n\n\t\tPassword creation in progress... ");
srand(time(0));
string str =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!£$%^&*()_+=#@;";
int pos;
iChar = countLetters(password, &iUpper, &iLower, &iSymbol, &iNumber,
&iTotal);
if (iUpper < 2) {
printf("Not enough uppercase letters!!!\n");
} else if (iLower < 2) {
printf("Not enough lowercase letters!!!\n");
} else if (iSymbol < 1) {
printf("Not enough symbols!!!\n");
} else if (iNumber < 2) {
printf("Not enough numbers!!!\n");
} else if (iTotal < 9 && iTotal > 15) {
printf("Not enough characters!!!\n");
}
printf("\n\n\n Your new password is verified " + password);
printf("\n\n\n");
system("pause");
} //end of generatePass method.
//method to validate a user generated password following password guidelines.
int validatePass() {
char password[MAX + 1];
int iChar, iUpper, iLower, iSymbol, iNumber, iTotal;
//shows user password guidelines
printf("\n\n\t\tPassword rules: ");
printf(
"\n\n\t\t 1. Passwords must be at least 9 characters long and less than 15 characters. ");
printf("\n\n\t\t 2. Passwords must have at least 2 numbers in them.");
printf(
"\n\n\t\t 3. Passwords must have at least 2 uppercase letters and 2 lowercase letters in them.");
printf(
"\n\n\t\t 4. Passwords must have at least 1 symbol in them (eg ?, $, £, %).");
printf(
"\n\n\t\t 5. Passwords may not have small, common words in them eg hat, pow or ate.");
//gets user password input
printf("\n\n\t\tEnter your password following password rules: ");
gets(password);
iChar = countLetters(password, &iUpper, &iLower, &iSymbol, &iNumber,
&iTotal);
if (iUpper < 2) {
printf("Not enough uppercase letters!!!\n");
} else if (iLower < 2) {
printf("Not enough lowercase letters!!!\n");
} else if (iSymbol < 1) {
printf("Not enough symbols!!!\n");
} else if (iNumber < 2) {
printf("Not enough numbers!!!\n");
} else if (iTotal < 9 && iTotal > 15) {
printf("Not enough characters!!!\n");
}
printf("\n\n\n Your new password is verified " + password);
printf("\n\n\n");
system("pause");
} //end validatePass method
int countLetters(char * Password, int * Upper, int * Lower, int * Symbol,
int * Number) {
int iTotal = 0, iC, tU = 0, tL = 0, tS = 0, tN = 0;
//strlen- function that returns length
for (iC = 0; iC < strlen(Password); iC++) {
printf("%d", Password[iC]);
//uppercase letters are in the range 65 - 90
//lowercase letters are in the range 97 - 122
//check upper case
if ((Password[iC] < 64) && (Password[iC] < 91)) {
tU++;
iTotal++;
} else if ((Password[iC] > 96) && (Password[iC] < 123)) {
tL++;
iTotal++;
} else if ((Password[iC] > 32) && (Password[iC] < 48)) {
tS++;
iTotal++;
} else if ((Password[iC] > 47) && (Password[iC] < 58)) {
tN++;
iTotal++;
}
*Upper = tU;/*set value at memory address = tU,passing by reference saves memory used.*/
*Lower = tL;
*Symbol = tS;
*Number = tN;
} //end for statement
return (iTotal);
} //end of countLetters
error C4430: missing type specifier – int assumed. Note: C++ does not support default-in
This should be
int main()error C2082: redefinition of formal parameter ‘str’
Change one of the variable name to str2
error C2660: ‘countLetters’
int * Number) //Takes 5
&iTotal); //Gives 6
Count the parameters, they do not match