读书人

好像是字符越界运行出现乱码请各位

发布时间: 2013-08-01 15:23:18 作者: rapoo

好像是字符越界,运行出现乱码,请各位大神帮帮忙,哪里出错了?怎么改?谢谢!
/************************************************************************/
/* 模拟用户登录 */
/************************************************************************/
#include<stdio.h>
#include <string.h>
int main()
{
char *user; //保存用户原有用户名
char *password; //保存用户原有密码
char user_1[20]; //保存用户输入的用户名
char password_1[20]; //保存用户输入的密码
int count=3; //控制用户输入次数
user="sdlangking";
password="zvz12c";
printf("用户登录:\n");
while (count--)
{
printf("用户名:%s\n",user_1);
//fgets(user_1,20,stdin); //提示输入用户名

printf("密 码:%s\n",password_1);
fgets(password_1,8,stdin); //提示输入用户密码
//判断用户名与密码是否与原有用户名,密码相同
if (strcmp(user,user_1)==0&&strcmp(password,password_1)==0)
{
printf("登录成功!\n");
}
else
{
printf("登录失败!请重新输入!\n");
}
}
printf("三次登录失败,请联系管理员!\n");
return 0;
} 乱码 C
[解决办法]
code=c]
char user_1[20]; //保存用户输入的用户名
char password_1[20]; //保存用户输入的密码
[/code]
没有初始化,后文就使用了输出


printf("用户名:%s\n",user_1);

[解决办法]

if (strncmp(user,user_1,sizeof(user_1))==0&&strncmp(password,password_1, sizeof(password_1))==0)

[解决办法]

#include<stdio.h>
#include <string.h>
int main()
{
char *user; //保存用户原有用户名
char *password; //保存用户原有密码
char user_1[20] = {0}; //保存用户输入的用户名
char password_1[20] = {0}; //保存用户输入的密码
int count=3; //控制用户输入次数


user="sb";
password="120";
printf("用户登录:\n");
while (count--)
{
printf("用户名:\n");
fgets(user_1,20,stdin); //提示输入用户名

printf("密 码:");
fgets(password_1, 20,stdin); //提示输入用户密码
//判断用户名与密码是否与原有用户名,密码相同
if (strcmp(user,user_1)==0&&strcmp(password,password_1)==0)
{
printf("登录成功!\n");
}
else
{
printf("登录失败!请重新输入!\n");
}
}
printf("三次登录失败,请联系管理员!\n");
return 0;
}

读书人网 >C语言

热点推荐