我是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
答案 0 :(得分:3)
也许添加括号实际调用它:
j->apples = atoi(cell.c_str());
^^^
此外,您可能希望研究将字符串转换为整数的其他方法,例如std::stoi
或strtol
或istringstream
。
答案 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;