| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:为什么每次输入还没有到5次它就中止了,想了半天想不出来,请大神帮忙
只看楼主 加入收藏
鬼才!
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-10-21
结帖率:25%
收藏
已结贴  问题点数:10 回复次数:8 
为什么每次输入还没有到5次它就中止了,想了半天想不出来,请大神帮忙
#include<iostream>
#include<string>
using namespace std;

int cleckuserinfo(string name,string pwd,int name_len,int pwd_len  )
{
int i;
for(i=0;i<name_len;i++)
{
if((name.at(i)=='#')||(name.at(i)=='*')||(name.at(i)=='!'))
{
return 1;

}
}
for(i=0;i<pwd_len;i++)
{
if((pwd.at(i)=='#')||(pwd.at(i)=='*')||(pwd.at(i)=='!'))
{
return 1;

}
}

if((name_len<8)||(name_len>64))
{
return 2;
}

if((pwd_len<8)||(pwd_len>64))
{
return 2;
}

return 0;
}


void errorinfo(int n)
{
if (n==1)
{
cout<<"您输入的用户名或密码含有非法字符#或*或!"<<endl;
}
if (n==2)
{
cout<<"用户名,密码不得少于8个字符,不得多于64个字符!"<<endl;
}

}

void connect(string name,string pwd,int name_len,int pwd_len)
{
string str = "#";
string str1 = name + str + pwd;
cout<<"连接后的新字符串为:"<<str1<<endl;
 
//从新字符串中提取子串
int m = str1.find(str,0);
string str2,str3;

str2.assign( str1, 0, name_len );

str3.assign( str1, m+1, pwd_len );

if(name_len<=32)
{
str2.append(32-name_len,'*');
}


if(pwd_len<=32)
{
str3.append(32-pwd_len,'*');
}

cout<<"#字符的位置是"<<m<<endl;
cout<<"子串为:"<<endl<<str2<<endl<<str3<<endl;


}

int main (void)
{
cout<<"*********************WELCOME TO THE USER LANDING PLATFORM*********************"<<endl;

string username;
string userpwd ;


cout<<"请输入用户名:"<<endl;
cin>>username;


cout<<"请输入用户密码:"<<endl;
cin>>userpwd;

int namelen=username.length();
int pwdlen =userpwd.length();
int num=1;

int flag=cleckuserinfo(username,userpwd,namelen,pwdlen);


while((flag != 0)&&(num<5))
{
errorinfo(flag);

cout<<"请输入用户名:"<<endl;
cin>>username;


cout<<"请输入用户密码:"<<endl;
cin>>userpwd;


flag=cleckuserinfo(username,userpwd,namelen,pwdlen);


num++;
cout<<"您还有的输入机会为:"<<5-num<<endl;
}

connect(username,userpwd,namelen,pwdlen);

if(flag==0)
{
cout<<"用户登录成功,请稍等"<<endl;

}

else
{

cout<<"非法输入达到5次,程序终止!"<<endl;
}


return 0;

}
搜索更多相关主题的帖子: include return 
2013-11-03 11:33
a592963144
Rank: 2
等 级:论坛游民
帖 子:41
专家分:95
注 册:2013-9-27
收藏
得分:0 
好难。。
2013-11-03 17:14
鬼才!
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2013-10-21
收藏
得分:0 
回复 2楼 a592963144
好吧
2013-11-03 17:20
Susurrant
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:22
专家分:52
注 册:2013-1-7
收藏
得分:4 
运行一下,数了两遍,是输入5次都不正确后结束的....

effort ? succeed : retry ;
2013-11-03 18:33
zhu404424118
Rank: 2
来 自:四川
等 级:论坛游民
威 望:1
帖 子:37
专家分:33
注 册:2013-10-31
收藏
得分:0 
看了后好有压力,瞬间感到智商被压制了。

自学c++求指导
2013-11-03 22:14
wu2782641803
Rank: 2
等 级:论坛游民
帖 子:65
专家分:46
注 册:2013-10-28
收藏
得分:0 
回复 楼主 鬼才!
我输出来可以啊
2013-11-03 22:34
CL0419
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2013-3-18
收藏
得分:3 
是这样的,你这个功能是模仿登陆的,你是想实现,如果一次性输入账户名和密码就可以一次性成功进去,如果你第一次输入的条件和你所写代码的给的输入条件不合适,那么就会接着下一次输入,如果你在五次之内输入的都不对,那肯定会报错的,你试着第一次按照它的条件输入,就对了……
2013-11-06 00:05
和起点在纠缠
Rank: 1
来 自:贵州
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-9-23
收藏
得分:0 
我初学者,看不懂代码、、原谅我吧
2013-11-07 10:51
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:3 
int num=1; 这改为0

执行1次num为2 执行4次就为5
2013-11-07 17:27
快速回复:为什么每次输入还没有到5次它就中止了,想了半天想不出来,请大神帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056428 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved