无法将字符串转换为整数

时间:2014-02-21 09:03:48

标签: c++ string integer

我是C ++的新手,问题是我无法将字符串转换为整数;你能帮忙吗?

    container *beg = NULL;
    container *insert;
    insert = new container;

    std::ifstream  data(filename);
    std::string line;
    std::getline(data, line);

    for (container *i = insert; std::getline(data, line); i = i->nextCont)
    {
        std::stringstream lineStream(line);
        std::string cell;
        i->ID = atoi(cell.c_str);
        for (box *j = i->beginBox; std::getline(lineStream, cell, ';'); j = j->next)
        {
            j->apples = atoi(cell.c_str);
        }
    }
    return beg;

错误是:

错误4错误C3867:' std :: basic_string,std :: allocator> :: c_str':函数调用缺少参数列表;使用'& std :: basic_string,std :: allocator> :: c_str'创建指向成员e:\ labs \ 3.container \ 3.container \ class.cpp的指针109 1 3.container

错误5错误C3867:' std :: basic_string,std :: allocator> :: c_str':函数调用缺少参数列表;使用'& std :: basic_string,std :: allocator> :: c_str'创建指向成员e:\ labs \ 3.container \ 3.container \ class.cpp的指针112 1 3.container

3 个答案:

答案 0 :(得分:3)

也许添加括号实际调用它:

j->apples = atoi(cell.c_str());
                           ^^^

此外,您可能希望研究将字符串转换为整数的其他方法,例如std::stoistrtolistringstream

答案 1 :(得分:1)

c_str是字符串上的一个方法,所以你需要像cell.c_str()一样调用它来告诉编译器是一个方法,而不是一个类成员

答案 2 :(得分:0)

试试此代码

  container *beg = NULL;
container *insert;
insert = new container;

std::ifstream  data(filename);
std::string line;
std::getline(data, line);

for (container *i = insert; std::getline(data, line); i = i->nextCont)
{
    std::stringstream lineStream(line);
    std::string cell;
    i->ID = atoi(cell.c_str());
    for (box *j = i->beginBox; std::getline(lineStream, cell, ';'); j = j->next)
    {
        j->apples = atoi(cell.c_str());
    }
}
return beg;