
#include<stdio.h> #include<time.h> #include<string.h> #include<stdlib.h> int main() { int ch; ch...
#include<stdio.h>#include<time.h>#include<string.h>#include<stdlib.h>intmain(){intch;...
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int ch;
char ad[5];
char tb[6];
char adr[5]="admin";
char tbr[6]="TurboC";
printf("1---GUEST\n2---ADMIN\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("1---Login\n2---Register\n\n");
break;
case 2:
printf("\n\nPlease enter your user name and password.\n\n");
printf("user:\n");
gets(ad);
if (stricmp(ad, adr)==0)
printf("password:\n");
gets(tb);
if (stricmp(tb, tbr)==0)
printf("Login successfully!");
if (stricmp(tb, tbr)!=0)
printf("Erorr:Entered a wrong id or password!\n");
else
printf("Erorr:Entered a wrong id or password!\n");
break;
}
return 0;
}
为什么这段代码一运行就跳出? 展开
#include<time.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int ch;
char ad[5];
char tb[6];
char adr[5]="admin";
char tbr[6]="TurboC";
printf("1---GUEST\n2---ADMIN\n");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("1---Login\n2---Register\n\n");
break;
case 2:
printf("\n\nPlease enter your user name and password.\n\n");
printf("user:\n");
gets(ad);
if (stricmp(ad, adr)==0)
printf("password:\n");
gets(tb);
if (stricmp(tb, tbr)==0)
printf("Login successfully!");
if (stricmp(tb, tbr)!=0)
printf("Erorr:Entered a wrong id or password!\n");
else
printf("Erorr:Entered a wrong id or password!\n");
break;
}
return 0;
}
为什么这段代码一运行就跳出? 展开
2个回答
推荐于2017-10-06
展开全部
你没看到结果的原因在于没有在最后加getchar();程序运行,你输入一个数字后,马上往下走,直接运行结束了,所以会一闪而过。楼上的答案简直乱扯,楼主的ch本来就是int型,不是字符。
另外你的代码中,多个if逻辑很混乱,并且,对于字符串数组,注意要多留一个空间给'\0'结束符。char adr[6] = "admin"; 这样。否则在使用字符串函数时会出错的。
我稍作修改,VC6下测试无问题,代码如下:
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int ch;
char ad[6];
char tb[7];
char adr[6]="admin";
char tbr[7]="TurboC";
printf("1---GUEST\n2---ADMIN\n");
scanf("%d",&ch);
getchar();
switch(ch)
{
case 1:
printf("1---Login\n2---Register\n\n");
break;
case 2:
printf("\n\nPlease enter your user name and password.\n\n");
printf("user:\n");
gets(ad);
if (stricmp(ad, adr)==0)
{
printf("password:\n");
gets(tb);
if (stricmp(tb, tbr)==0)
{
printf("Login successfully!");
}
if (stricmp(tb, tbr)!=0)
{
printf("Erorr:Entered a wrong id or password!\n");
}
}
else
{
printf("Erorr:Entered a wrong id or password!\n");
}
break;
}
getchar();
return 0;
}
另外你的代码中,多个if逻辑很混乱,并且,对于字符串数组,注意要多留一个空间给'\0'结束符。char adr[6] = "admin"; 这样。否则在使用字符串函数时会出错的。
我稍作修改,VC6下测试无问题,代码如下:
#include<stdio.h>
#include<time.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int ch;
char ad[6];
char tb[7];
char adr[6]="admin";
char tbr[7]="TurboC";
printf("1---GUEST\n2---ADMIN\n");
scanf("%d",&ch);
getchar();
switch(ch)
{
case 1:
printf("1---Login\n2---Register\n\n");
break;
case 2:
printf("\n\nPlease enter your user name and password.\n\n");
printf("user:\n");
gets(ad);
if (stricmp(ad, adr)==0)
{
printf("password:\n");
gets(tb);
if (stricmp(tb, tbr)==0)
{
printf("Login successfully!");
}
if (stricmp(tb, tbr)!=0)
{
printf("Erorr:Entered a wrong id or password!\n");
}
}
else
{
printf("Erorr:Entered a wrong id or password!\n");
}
break;
}
getchar();
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询