gpt4 book ai didi

c++ - 将 vector * char 转换为 int

转载 作者:行者123 更新时间:2023-11-30 02:58:53 25 4
gpt4 key购买 nike

我在下面的代码中需要帮助,希望你能帮助我完成。我只想将 INT 类型传递给 setX() 和 setY()。但是,我无法将 vector char* 转换为 int。有替代方案吗?

template<class T>
vector<string> Delimiter(T inputString){
int count=0;
char str[inputString.length()];
strcpy(str,inputString.c_str());
char * pch;

vector<string> returnContainer;

printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str,",[]");
while (pch != NULL)
{
returnContainer.push_back(pch);
pch = strtok (NULL, " ,[]");
count++;
}
for(int i=0; i<returnContainer.size(); i++){
cout << "return:" << returnContainer[i] << endl;
}
return returnContainer;
}

//主要()

fileDataAfterFiltered = Delimiter(fileData[i]); // Delimiter (vector<string> type)

point2DObj[point2DCount].setX(fileDataAfterFiltered[1]); // error
point2DObj[point2DCount].setY(fileDataAfterFiltered[2]); // error

//Assn3.cpp:107:59: 错误:没有匹配函数来调用‘Point2D::setX(std::basic_string&)’

最佳答案

Delimiter()返回 vector<string>然后将这些字符串之一提供给 setX()setY() ,但都需要一个整数参数。您必须将字符串转换为 int

int x = atoi(fileDataAfterFiltered[1].c_str());
point2DObj[point2DCount].setX(x);
int y = atoi(fileDataAfterFiltered[2].c_str());
point2DObj[point2DCount].setY(y);

但是:在 C++ 中,数组和 vector 元素从 0 而不是 1 开始,因此您可能希望将其替换为 fileDataAfterFiltered[0]fileDataAfterFiltered[1]分别。

关于c++ - 将 vector<string> * char 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13396670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com