Member 14037488 Ответов: 3

Помоги мне с моим проектом.


Здравствуйте, я работаю в нашем проекте в школе. Наш проект посвящен банкомату.

Сначала я поставил звездочку, вводя PIN-код пользователя, точно так же, как в банкомате.

но поскольку это символ, я не могу сравнить его с такими числами, как

if (pin >= 0) ... это не сработает. Вы не могли бы мне помочь?

Что я уже пробовал:

штифт char[4];
string pass = "afgt";
int p;
int i=1;

cout << "введите PIN-код\t::\t";
если ((PIN-код &ГТ;= 0) и усилитель; & (контактный &ЛТ;= 9)){
для (i=1;i<=4;i++){
pin[i]=getch();
cout << "*";
}
}

вот этот....

3 Ответов

Рейтинг:
1

Nelek

вы должны научиться использовать отладчик. Это поможет вам учиться, находя свои собственные ошибки.

Как бы то ни было, вы сохраняете входные данные пользователя в переменной внутри фрагмента IF.
Итак, если переменная еще не была сохранена, то как же она будет сохранена? if ((pin >= 0) && (pin <= 9)) заявление будет соответствовать?

Во-вторых, что произойдет, если пользователь введет что-то неправильно (например, письмо)? Как бы то ни было, программа закончилась бы без объяснения причин.

Я рекомендую вам подумать, чего вы хотите достичь, изложить это на бумаге, а затем попытаться перевести это в код. Это должно сделать его немного легче для вас, чтобы упорядочить ваши идеи.


CPallini

5.

Nelek

Спасибо Карло

Рейтинг:
1

Richard MacCutchan

if ((pin >= 0) && (pin <= 9)){

Вы объявили pin-код как массив из 4 символов, поэтому вы не можете сравнить его с числом. Вы должны проверить каждый символ по очереди, как:
pin[i] = getch();
if (pin[i] < ‘0’ || pin[i] > ‘9’)
{
    // error message here
}


CPallini

Но если вы не позволяете пользователю вводить буквенные символы, как он может соответствовать паролю?
:-)

Richard MacCutchan

Если пароль состоит из букв, а пин-код-из цифр, преступники никогда его не получат.

CPallini

Блестяще! :большой палец вверх:

Рейтинг:
1

CPallini

На самом деле,

Цитата:
Ф ((PIN-код &ГТ;= 0) и усилитель; & (контактный &ЛТ;= 9))
это просто неправильно (кроме того, что бесполезно).
Похоже, вам разрешено использовать его C++ strings. Если Вам также разрешено использовать современные C++ особенности тогда попробуйте:
#include <iostream>
#include <array>
using namespace std;


int main()
{
  using Code = array<char, 4>;

  const Code pwd{'a','f','g','t'};
  Code pin;
    
  cout << "please enter the pin\n";
  for (auto & c : pin)
    cin >> c;
  
  if ( pwd == pin)
    cout << "that's OK\n";
  else
    cout << "sorry, no luck\n";
}