#include<stdio.h>
#include <string.h>
void main(){
char name[16] , pwd[16];
int a , b;
printf("请输入用户名:");
fgets(name,sizeof(name),stdin);
printf("请输入密码:");
fgets(pwd,sizeof(pwd),stdin);
printf("%s\n%s" ,&name , &pwd);
a = strcmp(name,"abc");
b = strcmp(pwd,"123456");
printf("%d\n",&a);
printf("%d",&b);
if(strcmp(name,"abc") == 0 && strcmp(pwd,"123456") == 0){
printf("---交换机管理系统---\n");
printf("1.登录\n");
printf("2.创建帐号\n");
printf("3.退出\n");
}else{
printf("\n用户名或者密码不正确!\n");
}
}
得到的不是0或者1 或者-1
没看到你输入用户名密码
fgets(name,sizeof(name),stdin);
fgets(pwd,sizeof(pwd),stdin);
换成
scanf("%s", name);
scanf("%s", pwd);
printf("%s\n", name);
printf("%s\n", pwd);
输出下,是不是abc和123456
print的时候不用加&,只有scanf的时候要加,加&的意思是取地址,你输出的两个数是两个int值得地址,代码运行没有任何问题。
而且,这种基础到不能再基础的东西上你们初学者是搞不出大新闻的,出了错就自己好好检查检查,不会引出什么天大的漏洞。
另外你到底是输入了什么,怎么中间空了3行还都是空的。