如何修复“没有匹配功能来调用'ati'”错误?

时间:2014-05-10 22:45:57

标签: c++ atoi

所有迹象都告诉我这是一个非常容易解决的问题,但我无法弄清楚错误告诉我atoi函数不存在。

C ++

#include <iostream>
#include <stdlib.h>

using namespace std;

string line;
int i;

int main() {

    line = "Hello";
    i = atoi(line);
    cout << i;

    return 0;
}


错误

lab.cpp:18:6: error: no matching function for call to 'atoi'
i = atoi(line);
    ^~~~

2 个答案:

答案 0 :(得分:12)

atoi预计const char*,而不是std::string。所以传递一个:

i = atoi(line.c_str());

或者,使用std::stoi

i = std::stoi(line);

答案 1 :(得分:1)

你必须使用

const char *line = myString.c_str();

而不是:

std::string line = "Hello";

因为atoi不接受std::string