У нас есть проект, который имитирует функцию atm. пользователь должен ввести пинкод, и он будет замаскирован звездочкой. входной пинкод должен быть равен пинсону по умолчанию, который хранится в массиве. Моя программа может замаскировать входной пинкод звездочками, единственная проблема заключается в том, что даже если входной пинкод совпадает с пинсоном по умолчанию, он все равно выводится неверно. в чем проблема? вот мой код:Сравнение элементов массива в C++
void checkPword()
{
char defaultPin[4] = "1234";
char inputPin[4] = "";
clrscr();
for (int cnt = 0; cnt <= 3; cnt++)
{
cout << "*";
inputPin[ctr];
}
if (defaultPin[0] == inputPin[0] && defaultPin[1] == inputPin[1]
&& defaultPin[2] == inputPin[2] && defaultPin[3] == inputPin[3])
{
clrscr();
cout << "pincode is correct";
}
else
{
clrscr();
cout << "pincode is incorrect";
}
}
Символьная строка ' "1234"' фактически содержит * пять * символов. Вы не можете забыть о завершении '' \ 0''. Это означает, что вы пишете за пределами массива defaultPin. –
Кроме того, что такое инструкция 'inputPin [ctr];' предполагается делать? –
Вы пытались добавить точку останова, чтобы увидеть точную точку, где программа не делает то, что вы ожидаете? Искусство отладки полезно не только для этой программы, но и для будущих программ, которые вы пишете. –