【问题标题】:C++ Error: 'no match for operator<...'C++ 错误:'不匹配运算符<...'
【发布时间】:2015-11-19 21:01:25
【问题描述】:

我一直在尝试创建密码生成器。该程序应该接受输入,并输出所有可能的字符组合(没有强制的蛮力)。我遇到了这个错误:error: no match for 'operator

我不知道该怎么做。但是,这里是代码。如果我还搞砸了其他任何事情,请告诉我,但所描述的错误是目前的主要问题:

#include <iostream>
#include <string>

using namespace std;

void generate() {
    int i=0;
    string pass;
    string r;
    string pear;
    for(i=0; i <= pear; i++) {
        pear = pass;
            r = pass[i];
}


    return r;
}

int main() {
    int i;
    string apple;
    cin >> apple;
    generate(apple,i);
    cout << apple;
}

【问题讨论】:

  • i 是一个 int,pear 是一个未设置的字符串。你期待它做什么?
  • 不要试图通过反复试验来学习 C++,这不会有什么好处。换一本好书吧。
  • 我讨厌听起来像个混蛋,但这个程序是完整的,完全是胡言乱语。
  • 您不能在 for 循环中将整数 i 与字符串 pear 进行比较。这没有意义。
  • 我不怪你,这实际上是有史以来最糟糕的程序,我把它放在一起认为它会起作用,但没有找到解决方案......所以我来到了这里。

标签: c++ c++11 passwords generator brute-force


【解决方案1】:
//...    
generate(apple,i);
//...

您必须在函数“生成”的签名中指定参数,例如:

void generate( string apple, int it ) {

还有错误:

size_t i;
//...
for(i=0; i <= pear.length(); i++) {
   //logic here?!
}

您使用以下方法将元素添加到字符串:

string.push_back( 'a' );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2017-08-10
    • 2016-03-18
    相关资源
    最近更新 更多