我是c ++编程的初学者,我在学校有这项活动。我一直得到[错误] ISO C ++禁止在第15行中指针和整数[-fpermissive]之间的比较。你如何解决这个问题?谢谢!
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
int pass[5];
int x;
main()
{
cout<<"\nEnter pin code: ";
for(x=0;x<=4;x++)
{
pass[x]=getch();
putch('#');
}
if(pass==86222)
cout<<"\nW E L C O M E!";
else
cout<<"\nIncorrect Pin Code";
getch();
}
答案 0 :(得分:1)
你正以一种非常奇怪的方式做事。如果你想比较int
s。选择int
,阅读并比较,为什么需要array
?
这样做的最简单方法是仅使用int
s。
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
main()
{
int pass;
cout<<"\nEnter pin code: ";
cin>>pass;
if(pass==86222)
cout<<"\nW E L C O M E!";
else
cout<<"\nIncorrect Pin Code";
getch();
}
如果您想按照自己的方式进行操作,请使用strcmp()
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
char pass[5];
int x;
main()
{
cout<<"\nEnter pin code: ";
for(x=0;x<=4;x++)
{
pass[x]=getch();
putch('#');
}
if(!strcmp(pass, "86222"))
cout<<"\nW E L C O M E!";
else
cout<<"\nIncorrect Pin Code";
getch();
}
答案 1 :(得分:0)
您正在阅读字符并将它们作为整数进行比较。那不会工作......
下面首先将charactes放入一个字符数组中,然后将aray转换为int并比较int:
char passch[6];
int pass, x;
main()
{
cout<<"\nEnter pin code: ";
for(x=0;x<=4;x++)
{
passch[x]=getch();
putch('#');
}
passch[5]= '\0';
pass= atoi(passch);
if(pass==86222)
cout<<"\nW E L C O M E!";
else
cout<<"\nIncorrect Pin Code";
getch();
}
答案 2 :(得分:0)
pass是一个数组(在c ++中用指针实现),86222是一个整数。你无法比较那些。
正如@haris在评论中所说,你真的只想将输入存储为整数。你用std::cin >> pass
做到这一点。然后您可以将pass
与您存储的值进行比较。