C++错误:不能将Basic字符串StaseCar>}转换为“conchchar”,以参数“1”到“long int”

C++错误:不能将Basic字符串StaseCar>}转换为“conchchar”,以参数“1”到“long int”,c++,string,c++11,C++,String,C++11,提前谢谢 你可以使用strtolstr[j].c_str,&p,10;对c_str的调用返回一个指向字符串对象内容的常量字符*,strtol需要一个常量字符*。或者您可以编写更多的惯用代码,并调用std::stolstr[j]。您可以将代码减少到导致错误的原因吗?或者至少提到它是哪一行?int size[大小];不是标准C++,这是一个扩展,这意味着这个代码不是可移植的。还使用std::string;如果还使用命名空间std;,则为rendundant;。此外,您从不删除字符串*str=新字符串

提前谢谢

你可以使用strtolstr[j].c_str,&p,10;对c_str的调用返回一个指向字符串对象内容的常量字符*,strtol需要一个常量字符*。或者您可以编写更多的惯用代码,并调用std::stolstr[j]。

您可以将代码减少到导致错误的原因吗?或者至少提到它是哪一行?int size[大小];不是标准C++,这是一个扩展,这意味着这个代码不是可移植的。还使用std::string;如果还使用命名空间std;,则为rendundant;。此外,您从不删除字符串*str=新字符串[size];虽然更好的解决方案是std::vector,但您应该这样做