代码之家  ›  专栏  ›  技术社区  ›  Kaizokupuffball

C++最小/最大功能错误(C2665)[关闭]

  •  0
  • Kaizokupuffball  · 技术社区  · 8 年前

    我正在尝试获取此函数,该函数需要在最小和最大范围之间取一个int才能正常工作,但我不断得到错误:

    No instance of overloaded function "input" matches the argument list
    argument types are: (const char [##], int, int)
    

    我尝试使用的函数如下

    int input(char* t, int min, int max) {
        int number;
        do {
            cout << '\t' << t << " (" << min << '-' << max << "):  ";
            cin >> number;
            cin.ignore();
        } while (number < min || number > max);
        return number;
    }
    

    更好地解释一下。 这个 t 争论基本上就是所问的问题,例如:“你多大了”。 那里有 min max 都是整数。

    示例用法:

    int years;
    years = input("How old are you", 0, 110);
    

    是的,指针应该在函数参数中。

    生成错误:C2665

    如果有人有时间帮助我,请提前感谢。 (包括所需的所有库)

    1 回复  |  直到 8 年前
        1
  •  2
  •   Arnav Borborah    8 年前

    const char* 不同于 char* (字符串文字在C++中是不可变的)。将函数签名更改为:

    int input(const char* t, int min, int max)
    

    更好的是,考虑使用 std::string .