注册 登录
编程论坛 C++教室

请问这段代码为什么会错?(不是编译错误,是输入时不按“套路”出牌)

root2008 发布于 2018-08-15 19:39, 1988 次点击
源代码:
   
程序代码:
bool abs1;
    for(int i=0;i<=100;++i)
    {
        getline(fin, d[101]);        
    }
    abs1=d[101].find(s);
    if(abs1=true)
    {
        cout<<"请输入该账号对应的密码:";
    }
    else if(abs1=false)
    {
        cout<<"对不起,该账号未注册!2秒后前往注册页面……";
    }


用这段代码,如果用root是跳到第9行的(只有以下字符串可以),可是为什么用其他的也会跳到第9行?
Administrator
root
2020liujuanxi



[此贴子已经被作者于2018-8-15 19:50编辑过]

5 回复
#2
rjsp2018-08-15 22:23
听不懂你在说什么
但 if(abs1=true) 你是不是弄混了 == 和 =
那个else也一样
#3
rjsp2018-08-15 22:27
我猜
getline(fin, d[101]);

abs1=d[101].find(s);
也是错的
我猜前者应该是 d[i],而非 d[101]
后者猜不出,但如果它是正确的,那d[0]到d[100]有什么用
#4
root20082018-08-16 14:27
存储字符串

string d[101];
#5
ManchesterU2018-08-16 16:24
回复 楼主 root2008
你那个if语句有错误,++i不正确,应该是i++。
而且if语句里面不能赋值,=是赋值的意思,应该把=改成==;
表达真假是应该用非0(真)和0(假)来表达,而非true和false。
你这里是怎么判断有没有这个账号的,没有的话个个都会跳到第九行
你的代码都不全,看不懂,把所有代码发出来才好。
#6
rjsp2018-08-16 16:46
以下是引用root2008在2018-8-16 14:27:30的发言:

存储字符串
 
string d[101];

你说这话有什么用?别人依然不知道你想实现什么功能

你不肯说,那我猜猜
程序代码:
#include <string>
#include <vector>
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;

int main (void)
{
    // 输入帐号
    string s;
    getline( cin, s );

    // 载入所有已注册的帐号
    vector<string> users;
    {
        ifstream fin( "users.txt" );
        for( string user; getline(fin,user); )
            users.push_back( user );
    }

    // 检查 输入账号 是否存在于 已注册的帐号 中
    if( find(users.begin(),users.end(),s) != users.end() )
        cout << "请输入该账号对应的密码: ";
    else
        cout << "对不起,该账号未注册!2秒后前往注册页面……";
}

1