在 C++ 中比较数组的元素
comparing elements of an array in c++
我们有一个模拟ATM功能的项目。 用户必须输入 PIN 码,它将被星号屏蔽。 输入 PIN 码必须等于存储在数组中的默认 PIN 码。我的程序可以用星号屏蔽输入密码,唯一的问题是即使输入密码与默认密码相同,它仍然输出不正确。一定有什么问题?这是我的代码:
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";
}
}
也许你必须将getch()分配给ctr?
ctr = getch();
里面为..
加号:说明
inputPin[ctr];
没有效果!
您已添加:
inputPin[cnt] = putchar(ctr);
建议
为了使代码清晰,请将"CNT"替换为"i"。
溶液
char defaultPin[4]="1234";
char input[4] = "";
char currentChar;
bool pinFail = false;
for(int i=0; i != 3; i++) {
currentChar = getchar();
input[i] = currentChar;
/* In this way you have only 3 if-control, not 3*4 as in your program */
if(currentChar != defaultPin[i]) {
pinFail = true;
}
}
if(pinFail) {
/* do something (print error?) */
} else {
/* coutinue with your application */
}
void checkPword()
{
char defaultPin[4]={1,2,3,4};
char inputPin[4]="";
clrscr();
for(int cnt=0;cnt<=3;cnt++)
{
inputPin[cnt] = getch();
cout<<"*";
}
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";
}
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 如何将元素添加到数组的线程安全函数?
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输出没有重复元素的动态数组(收缩数组)C++
- 数组中最大的非重复元素
- 数组元素打印的递归方法
- 对字符数组中的元素执行逐位操作
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 通过交换元素使数组相同
- 按平均值替换数组中的元素
- 打印矢量数组中的所有元素
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 如何将元素从向量转移到新数组?
- 如何在向量数组中插入元素?
- 为什么 2 个相同数组的元素彼此相等
- C++ 中的二维整数数组,每行中的元素数量不均匀