c++ - C++中字符串转int问题

标签 c++ atoi

如有错误请见谅,第一次在这里提问。 所以我有这个功能,我有一个 vector 类型,其中包含游戏玩家的名字和分数,同时我试图制作一个排名墙。 在程序的这个特定部分,我需要将字符串转换为 int。字符串部分实际上是字符串 vector 中的一个数字,我需要它是 int 以便我可以将它与其他数字进行比较,所以这里是:

void exibir_ranking(vector<string> &ranking) //dentro do laco, procura qual o maior score, imprime ele na tela juntamente com o nome correspondente no outro vetor depois apaga o valor e o nome dos vectors
{
    int k;
    vector <string> nomes;
    vector <int> pontuacoes;

    for(int i=0;i<ranking.max_size();i++) {
        if(i==0 || i%2 ==0) nomes.push_back(ranking[i]);
        else if(i==1 || i%2!=0) {
            int aux = atoi(ranking[i].c_str);
            pontuacoes.push_back(aux);          
        }
    }


    cout << "\n\n\t\tRANKING:\n\n";
    while(pontuacoes.size()!=0){
        int maior =0;
        for (k=0; k< pontuacoes.max_size(); k++){
            if(pontuacoes[k] > maior) maior = pontuacoes[k];
        }
        cout << k << "- " << "Nome: " << nomes[k] << "\tScore: "<<pontuacoes[k] << endl;
        nomes.erase (nomes.begin()+k);
        pontuacoes.erase (pontuacoes.begin()+k);
    }
    cout<<"\n----------------------------";

}

所以,visual studio 告诉我问题就在这里:

else if(i==1 || i%2!=0) {
    int aux = atoi(ranking[i].c_str);
    pontuacoes.push_back(aux);          
}

正如所说:

Error 4 error C3867: 'std::basic_string<_Elem,_Traits,_Alloc>::c_str': function call missing argument list; use '&std::basic_string<_Elem,_Traits,_Alloc>::c_str' to create a pointer to member c:\users\user\google drive\mackenzie\projeto programacao\projeto\projeto\jogo.cpp 247

谁能帮我解决这个问题?

最佳答案

使用()调用函数,c_str是函数不是变量:

ranking[i].c_str()
                ^^

此外,有了 C++,您可以使用 std::stoi停止使用 c_str,如果条目转换为整数无效,它也会抛出异常:

int aux = stoi(ranking[i]);

并且,将 max_size() 替换为 size() 以获得 vector 的实际大小,而不是最大可能大小。

关于c++ - C++中字符串转int问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883018/

相关文章:

c++ - CFileDialog 在 Windows XP 下保留目录句柄

c - 如何在 C 中检查 char 数组的前两个字符?

c - 为什么我的 C 函数返回不正确的 int?

c - 在C中将int写入二进制文件

c++ - 喜欢 atoi 但要漂浮

c - 在 C 中将 "char"转换为 "int"的逻辑

python - 使用 Numpy 读取使用 C++ 数据类型生成的二进制文件

c++ - 如何将使用参数包和类型名的类作为函数的输入参数(C++)

c++ - 获取实例化对象的对象

c++ - 我在使用 C++ 的刽子手游戏中遇到错误