void verification() {
char pass[50];
printf(" Enter Password : ");
fgets(pass, 50, stdin);
if (pass != 'aaanc6400') { \\ Warning message in here
printf("\n Invalid Password.. Please enter the correct password. \n\n");
verification();
}
info();
}
Run Code Online (Sandbox Code Playgroud)
当我编译程序时,在标记的行上它显示警告"字符常量对于它的类型太长"以及"指针和整数之间的比较".然后当我运行代码并输入正确的密码时,它仍会输出密码错误.我究竟做错了什么?
警告是关于你声明你有一个很长的角色.
'aaanc6400'
Run Code Online (Sandbox Code Playgroud)
是一个9个字符长的字符,编译器警告你,它可能是一个打字错误.这是正确的.
在C中,我们'对字符使用单引号,"对字符串使用双引号,字符串是以字符结尾的'\0'字符数组.
所以,你必须更换'aaanc6400'与"aaanc6400"和使用strcmp.记得!fgets也可以阅读\n,所以你可以比较输入"aaanc6400"和"aaanc6400\n".这个解决方案足以满足学生项目的需要.
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |