c ++ программный метод ошибок Visual Studio

Итак, я делаю программу на c ++, которая имеет два отдельных метода для генерации случайного пароля и один для получения пользователем сгенерированного и проверки его. Но я получаю ошибки с методами и возвращаю пароль. Я новичок в c ++, так что я признателен, если кто-то может дай мне несколько советов, где я делаю ошибки. У меня проблемы, в частности, с объявлением методов, так как я не уверен, принимают ли они параметры и должны ли они быть int или другими. Я получаю следующие ошибки:

ошибка C4430: отсутствует указатель типа — предполагается int. Примечание: C ++ не поддерживает default-int

ошибка C4244: «аргумент»: преобразование из «time_t» в «unsigned int», возможная потеря данных

ошибка C2082: переопределение формального параметра ‘str’

ошибка C2660: ‘countLetters’: функция не принимает 6 аргументов

ошибка C2110: «+»: невозможно добавить два указателя

ошибка C2660: ‘countLetters’: функция не принимает 6 аргументов

ошибка C2110: «+»: невозможно добавить два указателя

предупреждение C4018:<‘: несоответствие со знаком / без знака

Спасибо,

#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

-1

Решение

ошибка C4430: отсутствует указатель типа — предполагается int. Примечание: C ++ не поддерживает вход по умолчанию

  1. главный()

Это должно быть int main()

ошибка C2082: переопределение формального параметра ‘str’

  1. generatePass (строка str)
  2. string str = «01234 …»

Измените одно из имен переменных на str2

ошибка C2660: ‘countLetters’

  1. int countLetters (char * Password, int * Upper, int * Lower, int * Symbol,
    int * Number) // занимает 5
  2. iChar = countLetters (пароль, &iUpper, &iLower, &iSymbol, &iNumber,
    &iTotal); // Дает 6

Посчитайте параметры, они не совпадают

2

Другие решения

Помимо ошибок, перечисленных @ahenderson:

printf("\n\n\n Your new password is verified " + password);

Вы не можете добавить символ [] password в строковый литерал. Используйте два отдельных printfвместо.

printf("\n\n\n Your new password is verified ");
printf(password);
3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector